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 14 Jan

introduction / building intro

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

overview, (partially) compilation

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

(no lab)

Thu 16 Jan

building

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

compilation, makefiles

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

accounts

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

accounts, POSIX permissions

  • make (finish)

  • user IDs/account abstraction
  • POSIX permissions, briefly
  • set-user-ID, sudo is not kernel mode
Wed 22 Jan

Lab: make


lab writeup
Lab assigned
Thu 23 Jan

privilege / exceptions

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

kernel §1-2.2, 3

  • kernel mode
  • system calls
  • memory protection
  • context switches
  • non-system-call exceptions (start)
Quiz week02 (quiz for week 2) released, due 2025-01-28 09:15
Fri 24 Jan
Week 3
Tue 28 Jan

exceptions / signals

 [ 
Reiss's slides from: kernelsignals
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

thread §1-2 / kernel §2-2.2, 3, 2.3.1

  • non-system-call exceptions (finish)
    • timer interrupt
    • I/O
  • Unix signals
    • signal handlers and implementation
Quiz week02 (quiz for week 2) due 09:15 (released 2025-01-23)
Wed 29 Jan

Lab: permissions


lab writeup
Lab assigned
Thu 30 Jan

processes 1

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

kernel §2.3.1

  • Unix signals (con’t)
    • signal unsafety
    • handling signals without signal handlers
  • processes, threads

  • creating new processes
    • fork, exec*
Quiz week03 (quiz for week 3) released, due 2025-02-04 09:15
Fri 31 Jan
warmup due by 11:59pm
Week 4
Tue 04 Feb

processes 2

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

kernel §3.3.3; threads

  • waiting for processes
  • file descriptors
Quiz week03 (quiz for week 3) due 09:15 (released 2025-01-30)
Wed 05 Feb

Lab: signal handling


lab writeup
Lab assigned
Thu 06 Feb

process 3

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

kernel §3.3.3; threads

  • dup2
  • pipe, redirection
Quiz week04 (quiz for week 4) released, due 2025-02-11 09:15
Fri 07 Feb
Week 5
Tue 11 Feb

virtual memory 1

 [ 
Reiss's slides from: vm
| screencapture (browser  or download mp4 webm audio ) ]
Reading:

VM §1, 2.2, 3.1

  • virtual memory concept
    • address space and address sizes
  • page tables
  • loading data on demand (start)
Quiz week04 (quiz for week 4) due 09:15 (released 2025-02-06)
Wed 12 Feb

Lab: fork lab


lab writeup
Lab assigned
Thu 13 Feb

virtual memory 2

 [ 
Reiss's slides from: vm
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

VM §2.1, 3.2

  • loading data on demand (finish)
  • copy-on-write, other “page table tricks”
  • storing page tables in memory (start)
Quiz week05 (quiz for week 5) released, due 2025-02-18 09:15
Fri 14 Feb
Week 6
Mon 17 Feb
timing due by 11:59pm
Tue 18 Feb

virtual memory 3

 [ 
Reiss's slides from: vm
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

VM §2.1, 3.2; cache

  • pagetable assignment
  • as a tree
  • multi-level lookup example
Quiz week05 (quiz for week 5) due 09:15 (released 2025-02-13)
Wed 19 Feb

Lab: virtual memory exploration


lab writeup
Lab assigned
Thu 20 Feb

caches 1

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

cache

  • caching idea, locality
  • direct-mapped caches
    • valid bits, tags
  • set-associative caches
Quiz week06 (quiz for week 6) released, due 2025-02-25 09:15
Fri 21 Feb
fork HW due by 11:59pm
Week 7
Tue 25 Feb

caches 2

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

cache

  • set associative caches
  • (briefly) replacement policies
  • cache misses and C code
Quiz week06 (quiz for week 6) due 09:15 (released 2025-02-20)
Wed 26 Feb

Lab: sync games


tentative lab writeup
Lab assigned
Thu 27 Feb

midterm review

| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio )
Fri 28 Feb
pagetable part 1 due by 11:59pm
Week 8
Tue 04 Mar

midterm

Wed 05 Mar

Lab: cache exercises


lab writeup
cache exercises due 25 March 2025
Thu 06 Mar

caches 3

 [ 
Reiss's slides from: caching
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

cache

  • set associative caches
  • (briefly) replacement policies
  • cache misses and C code
Fri 07 Mar
Week 9
Tue 11 Mar
(no class)
Wed 12 Mar
(no class)
Thu 13 Mar
(no class)
Fri 14 Mar
(no class)
Week 10
Tue 18 Mar

caches 3 / TLB / threads

 [ 
Reiss's slides from: cachingthreads
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

cache, threads, pthreads

  • cache write policies
  • the TLB
Wed 19 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 20 Mar

threading

 [ 
Reiss's slides from: threadssyncdeadlock
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

threads, pthreads

  • thread use examples

  • problem of synchronization

Quiz week10 (quiz for week 10) released, due 2025-03-25 09:15
Fri 21 Mar
pagetable 3 (post code review) due by 11:59pm
Week 11
Tue 25 Mar

synchronization 1

 [ 
Reiss's slides from: deadlocksync
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

sync

  • locks and mutexes
  • barriers

  • deadlock (start)
Quiz week10 (quiz for week 10) due 09:15 (released 2025-03-20)
cache exercises due due by 11:59pm
Wed 26 Mar

Lab: openmp


lab writeup
Lab assigned
Thu 27 Mar

synchronization 2

 [ 
Reiss's slides from: sync
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

sync

  • deadlock (con’t)
    • examples
    • definition
    • preventing/avoiding
  • producer/consumer problem
  • monitors (start)
Quiz week11 (quiz for week 11) released, due 2025-04-01 09:15
Fri 28 Mar
cache programs due by 11:59pm
Week 12
Tue 01 Apr

synchronization 3

 [ 
Reiss's slides from: syncnetwork
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

sync

  • monitors (finish)
  • (if time) false sharing
  • briefly, transactions
Quiz week11 (quiz for week 11) due 09:15 (released 2025-03-27)
Wed 02 Apr

Lab: pthreads (dining philosophers)


lab writeup
Lab assigned
Thu 03 Apr

networking 1

 [ 
Reiss's slides from: network
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

protocols §1-6

  • layers
  • mailbox analogy
    • best-effort delivery
    • envelope versus contents
  • connections atop mailbox model
  • names and addresses
  • example: a frame
    • layers (link, network, transport)
  • IP
    • addresses (v4, v6)
    • routers
  • port numbers and UDP
  • mapping between addresses and names/other addresses:
    • DNS
Quiz week12 (quiz for week 12) released, due 2025-04-08 09:15
Fri 04 Apr
TLB due by 11:59pm
Week 13
Tue 08 Apr

networking 2 / secure channels 1

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

security §1-3

  • networking (finish)
  • cryptography
    • symmetric encryption
    • asymmetric encryption
    • digital signature
  • replay attacks
  • public key infrastructure
Quiz week12 (quiz for week 12) due 09:15 (released 2025-04-03)
Wed 09 Apr

Lab: networking


lab writeup
Lab assigned
Thu 10 Apr

secure channels 2 / pipelining 1

 [ 
Reiss's slides from: secureprocessorspipeline
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

processors §1-3

  • cryptography (finish)
    • extra cryptography bits
      • cryptographic hashes
      • key exchange
    • (if time) TLS outline
  • review: single-cycle CPU
  • pipelining idea
  • pipelining for the CPU
  • pipelining tradeoffs
  • hazards and hazard handling
    • stalling
    • branch prediction, briefly
    • forwarding
Quiz week13 (quiz for week 13) released, due 2025-04-15 09:15
Fri 11 Apr
life due by 11:59pm
Week 14
Tue 15 Apr

pipelining 2

 [ 
Reiss's slides from: pipelineooo
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

processors §2-3

  • combining forwarding and stalling
  • some pipeline exercises

  • idea of multiple issue + out-of-order
  • (start) register renaming
Quiz week13 (quiz for week 13) due 09:15 (released 2025-04-10)
Wed 16 Apr

Lab: secure channels lab


lab writeup
Lab assigned
Thu 17 Apr

out-of-order 1

 [ 
Reiss's slides from: ooobpred
| 9:30am screencapture (browser  or download mp4 webm audio )| 12:30pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

processors §2-3

  • (finish) register renaming
  • instruction queues, dispatch

  • (if time) branch prediction ideas
    • static prediction
    • 1/2-bit histroy tables, pattern
Quiz week14 (quiz for week 14) released, due 2025-04-22 09:15
Fri 18 Apr
pipeline due by 11:59pm
Week 15
Tue 22 Apr

out of order 2 / side channels

 [ 
Reiss's slides from: spectre
 ]
  • side chnanels generally
  • side channels in the cache
Quiz week14 (quiz for week 14) due 09:15 (released 2025-04-17)
Wed 23 Apr

Lab: side channel


lab writeup
Lab assigned
Thu 24 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 week15 (quiz for week 15) released, due 2025-04-29 09:15
Fri 25 Apr
OOO due by 11:59pm
Week 16
Tue 29 Apr

exam review

Quiz week15 (quiz for week 15) due 09:15 (released 2025-04-24)