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

Slides linked with text “Reiss’s slides from” references slide deck(s) for the overall topic(s) that Reiss has built over the years. You can see a list of those slidedecks here. Often not everything in the slide deck will be covered in one day (or sometimes, at all in the semester).

DateTopicAssignment
Week 1
Tue 13 Jan

introduction / building intro

 [ 
Reiss's slides from: intrologisticsbuilding
| 11am screencapture (browser  or download mp4 webm audio )| 9am screencapture (browser  or download mp4 webm audio ) ]
Reading:

overview, (partially) compilation

  • course outline
  • pointers in C (review?)
Wed 14 Jan

(no lab)

Thu 15 Jan

building

 [ 
Reiss's slides from: building
| 11am screencapture (browser  or download mp4 webm audio )| 9am screencapture (browser  or download mp4 webm audio ) ]
Reading:

compilation, makefiles

  • .o, .a, .so files
  • dynamic and static linking
  • make
    • rules
Fri 16 Jan
Week 2
Tue 20 Jan

accounts

 [ 
Reiss's slides from: buildingaccounts
| 11am screencapture (browser  or download mp4 webm audio )| 9am screencapture (browser  or download mp4 webm audio ) ]
Reading:

accounts, POSIX permissions

  • make (finish)

  • user IDs/account abstraction
  • POSIX permissions, briefly
Wed 21 Jan

Lab: make


lab writeup
Lab assigned
Thu 22 Jan

privilege / exceptions 1

 [ 
Reiss's slides from: kernel
| 11am screencapture (browser  or download mp4 webm audio )| 9am screencapture (browser  or download mp4 webm audio ) ]
Reading:

kernel §1-2.2, 3

  • set-user-ID, sudo is not kernel mode
  • kernel mode
  • system calls
  • memory protection
  • context switches
Quiz week02 (quiz for week 2) released, due 2026-01-27 09:15
Fri 23 Jan
Week 3
Mon 26 Jan

(add deadline)

Tue 27 Jan

exceptions 2 / processes 1

 [ 
Reiss's slides from: kernelunix-api
| 11am screencapture (browser  or download mp4 webm audio )| 9am screencapture (browser  or download mp4 webm audio ) ]
Reading:

kernel §2-2.2, 2.3.1.1, 2.4, 3, 4 / thread §1-3.4

  • exceptions and I/O

  • creating new processes

    • fork, exec*
Quiz week02 (quiz for week 2) due 09:15 (released 2026-01-22)
Wed 28 Jan

Lab: permissions


lab writeup
Lab assigned
Thu 29 Jan

processes 2

 [ 
Reiss's slides from: unix-api
| 11am screencapture (browser  or download mp4 webm audio )| 9am screencapture (browser  or download mp4 webm audio ) ]
Reading:

threads §3.4-4

  • waiting for processes
  • file descriptors
  • redirection, dup2
Quiz week03 (quiz for week 3) released, due 2026-02-03 09:15
Fri 30 Jan
warmup due by 11:59pm
Week 4
Tue 03 Feb

virtual memory 0

 [ 
Reiss's slides from: vm
 ]
Reading:

VM §1

  • virtual memory (start)
Quiz week03 (quiz for week 3) due 09:15 (released 2026-01-29)
Wed 04 Feb

Lab: fork lab


lab writeup
Lab assigned
Thu 05 Feb

virtual memory 1

 [ 
Reiss's slides from: vm
 ]
Reading:

VM §1, 2.2, 3.1

  • virtual memory concept
    • address space and address sizes
  • page tables
  • page table lookup examples
  • page tables and context switches
Quiz week04 (quiz for week 4) released, due 2026-02-10 09:15
Fri 06 Feb
timing due by 11:59pm
Week 5
Tue 10 Feb

virtual memory 2

 [ 
Reiss's slides from: vm
 ]
Reading:

VM §2.1, 3.2

  • loading data on demand
  • copy-on-write, other “page table tricks”
  • swapping
  • mmap, linux /proc/$$/maps
  • storing page tables in memory
  • pagetable assignment
Quiz week04 (quiz for week 4) due 09:15 (released 2026-02-05)
Wed 11 Feb

Lab: empty loop


lab writeup
Lab assigned
Thu 12 Feb

virtual memory 3

 [ 
Reiss's slides from: vm
 ]
Reading:

VM §2.1, 3.2

  • multi-level page tables
  • multi-level page table examples
  • virtual memory exercises
Quiz week05 (quiz for week 5) released, due 2026-02-17 09:15
Fri 13 Feb
fork HW due by 11:59pm
Week 6
Tue 17 Feb

caches 1

 [ 
Reiss's slides from: caching
 ]
Reading:

cache

  • caching idea, locality
  • direct-mapped caches
    • valid bits, tags
Quiz week05 (quiz for week 5) due 09:15 (released 2026-02-12)
Wed 18 Feb

Lab: virtual memory exploration


lab writeup
Lab assigned
Thu 19 Feb

midterm 1

(Reiss out of town)

Quiz week06 (quiz for week 6) released, due 2026-02-24 09:15
Fri 20 Feb
Week 7
Mon 23 Feb

(drop deadline)

Tue 24 Feb

caches 2

 [ 
Reiss's slides from: caching
 ]
Reading:

cache

  • cache parameter exercises
  • set-associative caches
  • replacement policies (start)
Quiz week06 (quiz for week 6) due 09:15 (released 2026-02-19)
Wed 25 Feb

Lab: sync games


tentative lab writeup
Lab assigned
Thu 26 Feb

caches 3

 [ 
Reiss's slides from: caching
 ]
Reading:

cache

  • replacement policies (finish)
  • cache misses and C code
  • cache write policies
Quiz week07 (quiz for week 7) released, due 2026-03-03 09:15
Fri 27 Feb
pagetable part 1 due by 11:59pm
Week 8
Tue 03 Mar
(no class)
Quiz week07 (quiz for week 7) due 09:15 (released 2026-02-26)
Wed 04 Mar
(no class)
Thu 05 Mar
(no class)
Week 9
Tue 10 Mar

TLB / threads

 [ 
Reiss's slides from: cachingthreads
 ]
Reading:

cache, thread §1.3-4, pthreads §1-2

(withdraw deadline)

  • cache write policies

  • the TLB

  • thread use examples (start)

Wed 11 Mar

Lab: cache exercises


lab writeup

(withdraw deadline)

Lab assigned
Thu 12 Mar

synchronization 1 --- reordering and locks

 [ 
Reiss's slides from: sync
 ]
Reading:

consistency §1-2, sync §1-2, 4, pthreads §3.1-2

  • thread use examples (finish)

  • problem of synchronization
    • reordering by compilers, processors
  • locks
Quiz week09 (quiz for week 9) released, due 2026-03-17 09:15
Fri 13 Mar
Week 10
Tue 17 Mar

synchronization 2 --- deadlock / producer/consumer

 [ 
Reiss's slides from: syncdeadlock
 ]
Reading:

sync §8; deadlock; pthreads §3.3

  • barriers
  • deadlock

  • producer/consumer problem
Quiz week09 (quiz for week 9) due 09:15 (released 2026-03-12)
Wed 18 Mar

Lab: code reviews


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

synchronization 3 --- monitors, producer/consumer

 [ 
Reiss's slides from: sync
 ]
Reading:

sync §5-7, pthreads §3.5

(Reiss out of town)

  • monitors
    • solving producer/consumer problem
Quiz week10 (quiz for week 10) released, due 2026-03-24 09:15
Fri 20 Mar
pagetable 3 (post code review) due by 11:59pm
Week 11
Tue 24 Mar

transactions / networking 1

 [ 
Reiss's slides from: syncnetwork
 ]
Reading:

sync §9, protocols §1-2

  • reader/writer locks, briefly
  • transactions, briefly

  • networking layers
  • mailbox analogy
  • connections atop mailbox model
  • names and addresses
Quiz week10 (quiz for week 10) due 09:15 (released 2026-03-19)
Wed 25 Mar

Lab: openmp


lab writeup
Lab assigned
Thu 26 Mar

midterm 2

Quiz week11 (quiz for week 11) released, due 2026-03-31 09:15
Fri 27 Mar
cache programs (tentative writeup) due by 11:59pm
Week 12
Tue 31 Mar

networking 2

 [ 
Reiss's slides from: network
 ]
Reading:

protocols §1-6

  • example: a frame
    • layers (link, network, transport)
  • IP
    • addresses (v4, v6)
    • routers
  • port numbers and UDP
  • mapping between addresses and names/other addresses:
    • DNS
  • (briefly) HTTP, network address translation
Quiz week11 (quiz for week 11) due 09:15 (released 2026-03-26)
Wed 01 Apr

Lab: pthreads (dining philosophers)


tentative lab writeup
Lab assigned
Thu 02 Apr

secure channels 1

 [ 
Reiss's slides from: networksecure
 ]
  • cryptography
    • symmetric encryption
    • asymmetric encryption
    • digital signature
  • replay attacks
  • public key infrastructure
  • TLS outline
Quiz week12 (quiz for week 12) released, due 2026-04-07 09:15
Fri 03 Apr
TLB due by 11:59pm
Week 13
Tue 07 Apr

pipelining 1

 [ 
Reiss's slides from: processorspipeline
 ]
Reading:

processors §1-3

  • review: single-cycle CPU
  • pipelining idea
  • pipelining for the CPU
Quiz week12 (quiz for week 12) due 09:15 (released 2026-04-02)
Wed 08 Apr

Lab: networking


lab writeup
Lab assigned
Thu 09 Apr

pipelining 2

 [ 
Reiss's slides from: pipelineooo
 ]
Reading:

processors §2-3

  • pipelining tradeoffs
  • hazards and hazard handling
    • stalling
    • branch prediction, briefly
    • forwarding
  • some pipeline exercises

  • idea of multiple issue + out-of-order
Quiz week13 (quiz for week 13) released, due 2026-04-14 09:15
Fri 10 Apr
life (tentative writeup) due by 11:59pm
Week 14
Tue 14 Apr

out-of-order 1

 [ 
Reiss's slides from: ooobpred
 ]
Reading:

processors §2-3

  • register renaming
  • instruction queues, dispatch

  • (if time) branch prediction ideas
Quiz week13 (quiz for week 13) due 09:15 (released 2026-04-09)
Wed 15 Apr

Lab: secure channels lab


tentative lab writeup
Lab assigned
Thu 16 Apr

side channels

 [ 
Reiss's slides from: spectre
 ]
  • side channels generally
  • side channels in the cache
Quiz week14 (quiz for week 14) released, due 2026-04-21 09:15
Fri 17 Apr
pipeline due by 11:59pm
Week 15
Tue 21 Apr

meltdown/spectre

 [ 
Reiss's slides from: spectre
 ]
  • meltdown:
    • speculation past a priv/protection fault
  • spectre
    • speculation past a bounds chcek
    • using cache side-channels
Quiz week14 (quiz for week 14) due 09:15 (released 2026-04-16)
Wed 22 Apr

Lab: side channel


tentative lab writeup
Lab assigned
Thu 23 Apr

(slack)

Quiz week15 (quiz for week 15) released, due 2026-04-28 09:15
Fri 24 Apr
OOO (tentative writeup) due by 11:59pm
Week 16
Tue 28 Apr

(slack)

Quiz week15 (quiz for week 15) due 09:15 (released 2026-04-23)
Week 17
Mon 04 May

final exam (both sections; 7pm)