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

DateTopicAssignment
Week 1
Wed 17 Jan

(no lab)

Thu 18 Jan

introduction / building intro

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

overview, (partially) compilation

  • course outline
  • pointers in C (review?)
Fri 19 Jan
Week 2
Tue 23 Jan

building

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

compilation, makefiles

  • .o, .a, .so files
  • dynamic and static linking
  • make
    • rules
    • pattern rules
Wed 24 Jan

Lab: make


lab writeup
Lab assigned
Thu 25 Jan

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
Quiz 1 (quiz for week 2) released, due 2024-01-30 15:15
Fri 26 Jan
Week 3
Tue 30 Jan

privilege / exceptions

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

kernel §1-2.2, 3

  • quiz review
  • kernel mode
  • system calls
Quiz 1 (quiz for week 2) due 15:15 (released 2024-01-25)
Wed 31 Jan

Lab: permissions


lab writeup

(add deadline)

Lab assigned
Thu 01 Feb

exceptions

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

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

  • exceptions
    • other events triggering
  • threads and context switches
  • process = threads + address space
Quiz 2 (quiz for week 3) released, due 2024-02-06 15:15
Fri 02 Feb
warmup due by 11:59pm
Week 4
Tue 06 Feb

signals 1

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

kernel §2.3.1

  • Unix signals
    • signal handlers and implementation
Quiz 2 (quiz for week 3) due 15:15 (released 2024-02-01)
Wed 07 Feb

Lab: signal handling


lab writeup
Lab assigned
Thu 08 Feb

processes 1

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

kernel §3.3.3; threads

  • Unix signals
    • signal unsafety
    • handling signals without signal handlers
  • processes, threads
  • creating new processes
    • fork, exec*
  • waiting for processes
Quiz 3 (quiz for week 4) released, due 2024-02-13 15:15
Fri 09 Feb
Week 5
Tue 13 Feb

proceses 2

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

threads

  • file descriptors
  • dup2
  • pipe
Quiz 3 (quiz for week 4) due 15:15 (released 2024-02-08)
Wed 14 Feb

Lab: fork lab


lab writeup
Lab assigned
Thu 15 Feb

virtual memory 1

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

VM §1, 2.2, 3.1, 4

  • virtual memory concept
    • address space and address sizes
  • page tables
  • loading data on demand (start)
Quiz 4 (quiz for week 5) released, due 2024-02-20 15:15
Fri 16 Feb
timing due by 11:59pm
Week 6
Tue 20 Feb

virtual memory 2

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

VM §1, 2.2, 3.1

  • loading data on demand (finish)
  • copy-on-write, other “page table tricks”
  • storing page tables in memory
Quiz 4 (quiz for week 5) due 15:15 (released 2024-02-15)
Wed 21 Feb

Lab: virtual memory exploration


lab writeup
Lab assigned
Thu 22 Feb

virtual memory 3

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

VM §2.1, 3.2

  • page tables (finish)
    • pagetable assignment
    • as a tree
    • multi-level lookup example
Quiz 5 (quiz for week 6) released, due 2024-02-27 15:15
Fri 23 Feb
fork HW due by 11:59pm
Week 7
Tue 27 Feb

caches 1

 [ | 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) due 15:15 (released 2024-02-22)
Wed 28 Feb

Lab: sync games


lab writeup

(drop deadline)

Lab assigned
Thu 29 Feb

caches 2

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

cache

  • set-associative caches
  • (briefly) replacement policies
  • cache misses and C code (start)
Quiz 6 (quiz for week 7) released, due 2024-03-12 15:15
Fri 01 Mar
pagetable part 1 due by 11:59pm
Week 8
Tue 05 Mar
(no class)
Thu 07 Mar
(no class)
Week 9
Tue 12 Mar

caches 3

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

cache

  • cache misses and C code (finish)
  • cache write policies
Quiz 6 (quiz for week 7) due 15:15 (released 2024-02-29)
Wed 13 Mar

Lab: cache exercises


lab writeup

(withdraw deadline)

Lab assigned
Thu 14 Mar

(caches 4) / threads

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

threads §1-2, pthreads §1-2

  • the TLB

  • creating new threads
  • thread use examples
Quiz 7 (quiz for week 9) released, due 2024-03-19 15:15
Fri 15 Mar
Week 10
Tue 19 Mar

synchronization 1

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

sync, deadlock, consistency §1

  • problem of synchronization
  • atomicity, race conditions
  • reordering
  • locks and mutexes
  • barriers
Quiz 7 (quiz for week 9) due 15:15 (released 2024-03-14)
Wed 20 Mar

Lab: code reviews


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

synchronization 2 / deadlock

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

sync, pthreads

(Reiss out of town)

  • deadlock
    • examples
    • definition
    • preventing/avoiding
Quiz 08 (quiz for week 10) released, due 2024-03-26 15:15
Fri 22 Mar
pagetable 3 (post code review) due by 11:59pm
Week 11
Tue 26 Mar

synchronization 3

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

sync, protocols §1-2

  • producer/consumer problem
  • monitors
  • false sharing
  • briefly, transactions
Quiz 08 (quiz for week 10) due 15:15 (released 2024-03-21)
Wed 27 Mar

Lab: pthreads (dining philosophers)


tentative lab writeup
Lab assigned
Thu 28 Mar

synchronization 4 / networking 1

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

protocols §1-6

  • transcations

  • layers
  • mailbox analogy
    • best-effort delivery
    • envelope versus contents
  • connections atop mailbox model
  • names and addresses
Quiz 09 (quiz for week 11) released, due 2024-04-03 15:15
Fri 29 Mar
cache programs due by 11:59pm
Week 12
Tue 02 Apr

networking 2

 [ | screencapture (browser  or download mp4 webm audio ) ]
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
Wed 03 Apr

Lab: openmp


lab writeup
Quiz 09 (quiz for week 11) due 15:15 (released 2024-03-28)
Lab assigned
Thu 04 Apr

networking 3 / secure channels 1

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

security §1-3

  • mapping between addresses and names/other addresses (con’t)
    • MAC <-> IP mapping
    • NAT
  • URLs
  • DHCP

  • cryptography
    • symmetric encryption
    • asymmetric encryption
    • digital signature
Quiz 10 (quiz for week 12) released, due 2024-04-09 15:15
Fri 05 Apr
TLB due by 11:59pm
Week 13
Tue 09 Apr

secure channels 2

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

security §1-3

  • replay attacks
  • public key infrastructure
Quiz 10 (quiz for week 12) due 15:15 (released 2024-04-04)
Wed 10 Apr

Lab: networking


lab writeup
Lab assigned
Thu 11 Apr

secure channels 3 / pipelining 1

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

processors §1-3

  • extra cryptography bits
    • cryptographic hashes
    • key exchange
  • TLS protocol outline
  • review: single-cycle CPU
  • pipelining idea
  • pipelining for the CPU
Quiz 11 (quiz for week 13) released, due 2024-04-16 15:15
Fri 12 Apr
life due by 11:59pm
Week 14
Tue 16 Apr

pipelining 2

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

processors §2-3

  • pipelining tradeoffs
  • hazards and hazard handling
    • stalling
    • forwarding and forwarding logic
Quiz 11 (quiz for week 13) due 15:15 (released 2024-04-11)
Wed 17 Apr

Lab: secure channels lab


tentative lab writeup
Lab assigned
Thu 18 Apr

out-of-order 1

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

processors §2-3

  • speculation: guess and check later
  • briefly, branch prediction ideas
    • static prediction
    • local history
  • idea of multiple issue + out-of-order
  • out-of-order pipeline
Quiz 12 (quiz for week 14) released, due 2024-04-23 15:15
Fri 19 Apr
Week 15
Tue 23 Apr

out-of-order 2 / side channels

 [ | screencapture (browser  or download mp4 webm audio ) ]
  • register renaming
  • instruction queues
  • OOO limits

  • side channels generally
  • side channels in the cache (start)
Quiz 12 (quiz for week 14) due 15:15 (released 2024-04-18)
Wed 24 Apr

Lab: side channel


lab writeup
pipeline due by 11:59pm
Lab assigned
Thu 25 Apr

meltdown/spectre

 [ | screencapture (browser  or download mp4 webm audio ) ]
  • side channels in the cache (finish)
  • 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 2024-04-30 15:15
Fri 26 Apr
Week 16
Tue 30 Apr

Exam Review

| screencapture (browser  or download mp4 webm audio )
Quiz 13 (quiz for week 15) due 15:15 (released 2024-04-25)
OOO due before lecture time, late submissions not normally accepted
Fri 03 May

Final Exam

9am-12pm in Chemistry 402

reference sheet