This schedule is an estimate. It may be updated based on the actual pacing of the course material.

DateTopicAssignment
Week 1
Tue 22 Aug

introduction / building (pt 1)

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

overview, (partially) makefiles

  • course outline
  • .o, .a, .so
  • building
Wed 23 Aug

(no lab)

Thu 24 Aug

building (pt 2)

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

makefiles

  • make
Quiz 0 (quiz for week 1) released, due 2023-08-29 13:45
Week 2
Tue 29 Aug

privilege / exceptions

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

kernel §1-2.2, 3 / threads §1-2

  • kernel mode
  • system calls
  • exceptions
    • events triggering
    • what the hardware must do
    • exception handlers
Quiz 0 (quiz for week 1) due 13:45 (released 2023-08-24)
Wed 30 Aug

Lab: make


lab writeup
Lab assigned
Thu 31 Aug

exceptions / signals

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

kernel §3, 2.3.1

  • threads and context switches
  • process = threads + address space
  • Unix signals
    • events triggering
    • signal handlers and implementation (start)
Quiz 1 (quiz for week 2) released, due 2023-09-05 13:45
Fri 01 Sep
Week 3
Tue 05 Sep

signals

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

kernel §2.3.1

  • exceptions and the quiz

  • Unix signals

    • signal handlers and implementation (finish)
Quiz 1 (quiz for week 2) due 13:45 (released 2023-08-31)
Wed 06 Sep

Lab: signal handling


lab writeup
Lab assigned
Thu 07 Sep

accounts

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

accounts, POSIX permissions

  • user IDs/account abstraction
  • POSIX permissions, briefly
  • set-user-ID, sudo is not kernel mode
  • privilege escalation
Quiz 2 (quiz for week 3) released, due 2023-09-12 13:45
Fri 08 Sep
warmup due by 11:59pm
Week 4
Tue 12 Sep

virtual memory 1

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

VM §1, 2.2, 3.1

  • virtual memory concept
    • address space and address sizes
  • page tables
  • storing in memory (start)
Quiz 2 (quiz for week 3) due 13:45 (released 2023-09-07)
Wed 13 Sep

Lab: permissions


lab writeup
Lab assigned
Thu 14 Sep

virtual memory 2

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

VM §1, 2.2, 3.1

  • page tables
    • small example (not in memory)
    • storing in memory (finish)
Quiz 3 (quiz for week 4) released, due 2023-09-19 13:45
Fri 15 Sep
Sat 16 Sep
timing due by 11:59pm
Week 5
Tue 19 Sep

virtual memory 3

 [ 
slides (more than one day of slides)
| screencapture (browser  or download mp4 webm audio ) ]
Reading:

VM §2.1, 3.2

  • page tables (finish)
    • as a tree
    • multi-level lookup example
    • permission bits
Quiz 3 (quiz for week 4) due 13:45 (released 2023-09-14)
Wed 20 Sep

(no lab)

Thu 21 Sep

processes 1

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

VM 4, kernel §3.3.3; threads

  • page tables: loading data on demand
  • processes, threads
  • creating new processes
    • fork, exec*
    • copy-on-write
  • preview: threads
  • waiting for processes
Quiz 4 (quiz for week 5) released, due 2023-09-26 13:45
Fri 22 Sep
pagetable part 1 due by 11:59pm
Week 6
Tue 26 Sep

proceses 2

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

threads

  • briefly, pipe and dup2
  • file descriptors
  • pipe
Quiz 4 (quiz for week 5) due 13:45 (released 2023-09-21)
Wed 27 Sep

Lab: fork lab


lab writeup
Lab assigned
Thu 28 Sep

caches 1

 [ 
 tentative slides (more than one day of slides)
| screencapture (browser  or download mp4 webm audio ) ]
Reading:

cache

  • caching idea
  • (if time) connecting processors to memory
  • memory hierarchy
  • direct-mapped caches
    • valid bits, tags
Quiz 5 (quiz for week 6) released, due 2023-10-05 13:45
Week 7
Tue 03 Oct

reading day

(no class)
Wed 04 Oct

Lab: code reviews


lab writeup
pagetable part 2 (pre code review) due BEFORE FIRST LAB — normal late policy does not apply
Lab assigned
Thu 05 Oct

caches 2

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

cache

  • cache misses and C code
  • set-associative caches
  • (briefly) replacement policies
Quiz 6 (quiz for week 7) released, due 2023-10-10 13:45
Quiz 5 (quiz for week 6) due 13:45 (released 2023-09-28)
Fri 06 Oct
pagetable 3 (post code review) due by 11:59pm
Week 8
Tue 10 Oct

caches 3 / threads 1

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

cache, threads §1-2, pthreads §1-2

  • write policies
  • the TLB
Quiz 6 (quiz for week 7) due 13:45 (released 2023-10-05)
Wed 11 Oct

Lab: cache exercises


lab writeup
Lab assigned
Thu 12 Oct

synchronization 1

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

sync §1, 2-7, 8-9; consistency §1

  • creating new threads
  • thread use examples

  • problem of synchronization
  • atomicity, race conditions
Quiz 7 (quiz for week 8) released, due 2023-10-17 13:45
Fri 13 Oct
fork HW due by 11:59pm
Week 9
Tue 17 Oct

synchronization 3

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

sync, deadlock, consistency §1

  • reordering
  • locks and mutexes
  • barriers
  • interlude: reordering

  • deadlock
    • examples of
Quiz 7 (quiz for week 8) due 13:45 (released 2023-10-12)
Wed 18 Oct

Lab: sync games


lab writeup
Lab assigned
Thu 19 Oct

synchronization 4

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

sync, pthreads

(Reiss out of town, Campbell guest lectured)

Unfortunately, the audio on the lecture recording is noisy.

Access lecture recording here

Or access this version with volume boosted: browser mp4

Or if that doesn’t work/you prefer me doing the lecture:

  • I have a recording of me practicing going through the same topics outside lecture: mp4; or
  • last semester’s 4 April lecture starting at 24 minutes in covers close to the same material: link to schedule from last semester
  • deadlock
    • definition
    • preventing/avoiding
  • producer/consumer problem
  • monitors (start)
Quiz 08 (quiz for week 9) released, due 2023-10-24 13:45
Fri 20 Oct
cache programs due by 11:59pm
Week 10
Tue 24 Oct

synchronization 5 / networking 1

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

protocols §1-2

  • monitors (finish)
  • false sharing
  • briefly, transactions

  • mailbox analogy
    • best-effort delivery
    • envelope versus contents
  • layers
  • connections atop mailbox model (start)
Quiz 08 (quiz for week 9) due 13:45 (released 2023-10-19)
Wed 25 Oct

Lab: pthreads (dining philosophers)


lab writeup
Lab assigned
Thu 26 Oct

networking 2

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

protocols §1-6

  • connections atop mailbox model (finish)
  • names and addresses
  • example: a frame
    • layers (link, network, transport)
  • IP
    • addresses (v4, v6)
    • routers
  • port numbers and UDP
Quiz 09 (quiz for week 10) released, due 2023-10-31 13:45
Fri 27 Oct
TLB due by 11:59pm
Week 11
Tue 31 Oct

networking 3 / secure channels 1

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

security §1-1.5

  • mapping between addresses and names/other addresses:
    • MAC <-> IP mapping
    • DNS
    • NAT
  • URLs
  • DHCP

  • cryptography (start)
    • symmetric encryption
Quiz 09 (quiz for week 10) due 13:45 (released 2023-10-26)
Wed 01 Nov

Lab: networking


lab writeup
Lab assigned
Thu 02 Nov

secure channels 2

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

security §1-3

  • cryptography (con’t)
    • asymmetric encryption
    • digital signature
  • replay attacks
  • public key infrastructure (start)
Quiz 10 (quiz for week 11) released, due 2023-11-09 13:45
Fri 03 Nov
Week 12
Tue 07 Nov

election day

(no class)
Wed 08 Nov

Lab: openmp


lab writeup
Lab assigned
Thu 09 Nov

secure channels 3 / pipelining 1

 [ 
 tentative slides (more than one day of slides)
| screencapture (browser  or download mp4 webm audio ) ]
Reading:

processors §1-3

  • public key infrastructure (finish)
  • extra cryptography bits
    • cryptographic hashes
    • key exchange
  • TLS protocol outline

  • review: single-cycle CPU
  • pipelining idea
  • pipelining for the CPU (start)
Quiz 11 (quiz for week 12) released, due 2023-11-14 13:45
Quiz 10 (quiz for week 11) due 13:45 (released 2023-11-02)
Fri 10 Nov
life due by 11:59pm
Week 13
Tue 14 Nov

pipelining 2

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

processors §2-3

  • pipelining for the CPU (con’t)
  • hazards and hazard handlings
    • stalling / waiting
    • forwarding and forwarding logic
    • speculation: guess and check later (start)
Quiz 11 (quiz for week 12) due 13:45 (released 2023-11-09)
Wed 15 Nov

Lab: secure channels lab


lab writeup
Lab assigned
Thu 16 Nov

pipelining 3

 [ 
 tentative slides (more than one day of slides)
| screencapture (browser  or download mp4 webm audio ) ]
Reading:

processors §2-3

  • speculation: guess and check later (finish)
  • pipeline exercises

  • briefly, branch prediction ideas (start)
    • static prediction
Fri 17 Nov
Quiz 12 (quiz for week 13-4) released, due 2023-11-28 13:45
assignment due following Tuesday!
Week 14
Tue 21 Nov

out-of-order 1

 [ | screencapture (browser  or download mp4 webm audio ) ]
Reading:

processors §2-3

Note: the first few minutes of screencapture for the lecture recording is rerecorded (and so might not quite be in sync)

  • briefly, branch prediction ideas (start)
    • local history
  • idea of multiple issue + out-of-order
  • out-of-order pipeline
  • register renaming
  • instruction queues
pipeline due by 11:59pm
Wed 22 Nov
(no class)
Thu 23 Nov
(no class)
Week 15
Tue 28 Nov

out-of-order 2 / side channels

 [ | screencapture (browser  or download mp4 webm audio ) ]
  • data flow model for out-of-order
  • out-of-order limits

  • side channels generally
  • side channels in the cache
Quiz 12 (quiz for week 13-4) due 13:45 (released 2023-11-17)
Wed 29 Nov

Lab: side channel


lab writeup
Lab assigned
Thu 30 Nov

meltdown/spectre

 [ 
 tentative slides (more than one day of slides)
| screencapture (browser  or download mp4 webm audio ) ]
  • meltdown:
    • speculation past a priv/protection fault
  • spectre
    • speculation past a bounds chcek
    • using cache side-channels
Quiz 13 (quiz for week 15) released, due 2023-12-05 13:45
Fri 01 Dec
OOO due by 11:59pm
Week 16
Tue 05 Dec

Exam Review

| screencapture (browser  or download mp4 webm audio )

text file from lecture

Quiz 13 (quiz for week 15) due 13:45 (released 2023-11-30)
Week 17
Thu 14 Dec

Final Exam

Scheduled time: 9am-12pm Thursday 14 December in McLeod auditorium