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

DateTopicAssignment
Week 1
Wed 18 Jan

(no lab)

Thu 19 Jan

introduction / building (pt 1)

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

overview, (partially) makefiles

  • course outline
  • .o, .a, .so
  • building
Week 2
Tue 24 Jan

building (pt 2) / privilege

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

makefiles, kernel §1-2.2, 3.1

  • make

  • kernel mode
  • system calls
Wed 25 Jan

Lab: make


lab writeup
Lab assigned
Thu 26 Jan

exceptions

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

kernel §2-2.2, 3.1

  • exceptions
    • events triggering
    • what the hardware must do
    • exception handlers
  • threads and context switches
  • process = threads + address space
Quiz 1 (quiz for week 2) released, due 2023-01-31 13:15
Week 3
Tue 31 Jan

signals

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

kernel §2.3.1

  • Unix signals
    • events triggering
    • signal handlers and implementation
Quiz 1 (quiz for week 2) due 13:15 (released 2023-01-26)
Wed 01 Feb

Lab: signal handling


lab writeup
Lab assigned
warmup due by 1:59pm
Thu 02 Feb

accounts + virtual memory 1

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

accounts, POSIX permissions, kernel §3

  • user IDs/account abstraction
  • POSIX permissions
  • sudo is not kernel mode
  • vulnerabilities and privilege escalation

  • virtual memory concept
  • page tables
    • concept, small example
Quiz 2 (quiz for week 3) released, due 2023-02-07 13:45
Week 4
Tue 07 Feb

virtual memory 2

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

kernel §3

  • page tables
    • storing in memory
    • in-memory lookup example
    • as a tree (start)
Quiz 2 (quiz for week 3) due 13:45 (released 2023-02-02)
Wed 08 Feb

Lab: permissions


lab writeup
Lab assigned
timing due by 1:59pm
Thu 09 Feb

virtual memory 3

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

kernel §3

  • page tables
    • as a tree (finish)
    • in-memory page table lookup
    • permission bits
    • page table tricks, loading data on demand, swapping
Quiz 3 (quiz for week 4) released, due 2023-02-15 13:45
Week 5
Tue 14 Feb

IP + connection abstraction

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

protocols §1-2

  • mailbox analogy
    • inboxes and outboxes
    • addresses
    • best-effort delivery
    • envelope versus contents
  • TCP / connections
    • acknowledgements
    • state machine
  • names and addresses
    • layers preview
Wed 15 Feb

Lab: networking


lab writeup
Quiz 3 (quiz for week 4) due 13:45 (released 2023-02-09)
Lab assigned
pagetable part 1 due by 1:59pm
Thu 16 Feb

IP + routing

 [ | screencapture (browser  or download mp4 webm audio ) ]
  • example: a frame
    • layers (link, network, transport)
  • IP
    • addresses (v4, v6)
    • routers
  • port numbers and UDP (start)
Quiz 4 (quiz for week 5) released, due 2023-02-21 13:45
Week 6
Tue 21 Feb

URLs + DHCP + DNS

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

protocols §3-4

  • port numbers and UDP (finish)
  • DNS
    • is a distributed database
    • with caching
  • URLs
  • (if time) link-layer to network-layer mapping
  • DHCP
  • NAT
Quiz 4 (quiz for week 5) due 13:45 (released 2023-02-16)
Wed 22 Feb

Lab: code reviews


lab writeup
pagetable 2 (pre code review) due by 1:59pm
Lab assigned
Thu 23 Feb

network security / secure channels 1

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

security §1-1.5, 3

  • cryptography (start)
    • symmetric encryption
    • asymmetric encryption
    • digital signature
  • replay attacks
Quiz 5 (quiz for week 6) released, due 2023-02-28 13:45
Week 7
Tue 28 Feb

secure channels 2

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

security §1.5-2

  • cryptography (con’t)
    • cryptographic hashes
    • key exchange
  • public key infrastructure
  • TLS protocol outline
Quiz 5 (quiz for week 6) due 13:45 (released 2023-02-23)
Wed 01 Mar

Lab: secure channels lab


lab writeup
pagetable 3 (post code review) due by 1:59pm
Lab assigned
Thu 02 Mar

caches 1

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

cache §4, 1-3, 5

  • connecting processors to memory
  • memory hierarchy
  • locality
  • direct-mapped cache
    • valid bits
    • tags
Quiz 6 (quiz for week 7) released, due 2023-03-14 13:45
Week 8
Tue 07 Mar
(no class)
Wed 08 Mar
(no class)
Thu 09 Mar
(no class)
Week 9
Tue 14 Mar

caches 2

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

cache §4, 1-3, 5

  • cache misses and C code

  • set-associative cache
  • replacement policies
Quiz 6 (quiz for week 7) due 13:45 (released 2023-03-02)
Wed 15 Mar

Lab: cache exercises


lab writeup
Lab assigned
Thu 16 Mar

caches 3

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

processes and threads

(Guest lecture; Prof Reiss will be out of town.)

  • review of set-associative caches
  • write policies
  • three Cs, cache tradeoffs (start)
Quiz 7 (quiz for week 9) released, due 2023-03-21 13:45
Week 10
Tue 21 Mar

concurrency 1

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

[kernel] §3.3.3; threads; pthreads

  • cache tradeoffs, very briefly

  • the TLB

  • processes, threads
  • creating new processes
    • fork, exec*
  • waiting for processes
Quiz 7 (quiz for week 9) due 13:45 (released 2023-03-16)
Wed 22 Mar

Lab: fork lab


lab writeup
cache programs due by 1:59pm
Lab assigned
Thu 23 Mar

concurrency 2

 [ 
 (tentative) slides plus beginning of 28 Mar
| screencapture (browser  or download mp4 webm audio ) ]
Reading:

skim consistency; pthreads

  • file descriptors
  • pipe and dup2
Quiz 08 (quiz for week 10) released, due 2023-03-28 13:45
Week 11
Tue 28 Mar

threads 1 / synchronization 1

 [ 
 (tentative) slides plus beginning of 22 Aug
| screencapture (browser  or download mp4 webm audio ) ]
Reading:

sync §1, 2-7,

  • creating new threads
  • thread use examples
  • problem of synchronization
Quiz 08 (quiz for week 10) due 13:45 (released 2023-03-23)
Wed 29 Mar

Lab: sync games


lab writeup
TLB due by 1:59pm
Lab assigned
Thu 30 Mar

synchronization 2 / deadlock

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

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

  • atomicity, race conditions
    • atomic read-modify-write instructions
  • locks and mutexes
  • barriers

  • interlude: reordering

  • deadlock examples
Quiz 09 (quiz for week 11) released, due 2023-04-04 13:45
Week 12
Tue 04 Apr

deadlock / synchronization 3

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

sync

  • deadlock con’t

  • monitors (mutexes + condition variables) (start)

Quiz 09 (quiz for week 11) due 13:45 (released 2023-03-30)
Wed 05 Apr

Lab: pthreads (dining philosophers)


lab writeup
fork HW due by 1:59pm
Lab assigned
Thu 06 Apr

synchronization / roll back / pipelining

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

sync, processors §1-2

  • monitors (finish)
  • (briefly) counting semaphores
  • (if time) reader/writer locks
  • transactions (briefly)
Quiz 10 (quiz for week 12) released, due 2023-04-11 13:45
Week 13
Tue 11 Apr

pipeline 1

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

processors §1-2

  • pipelining idea
  • review: single-cycle CPU
  • pipelining for the CPU (
  • data hazards
  • hazard handling, part 1
  • stalling / waiting
Quiz 10 (quiz for week 12) due 13:45 (released 2023-04-06)
Wed 12 Apr

Lab: openmp


lab writeup
life due by 1:59pm
Lab assigned
Thu 13 Apr

pipeline 2

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

processors §2-3

  • hazard handling, part 2
  • forwarding and forwarding logic
  • control hazards + speculation idea (start)
    • guess and check later
Quiz 11 (quiz for week 13) released, due 2023-04-18 13:45
Week 14
Tue 18 Apr

branch prediction

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

processors §2-3, buses

  • speculation idea (finish)
    • guess and check later
    • undo when wrong
  • branch prediction ideas
    • forward-taken, backwards-not-taken
    • using history
Quiz 11 (quiz for week 13) due 13:45 (released 2023-04-13)
Wed 19 Apr

Lab: side channel


lab writeup
Lab assigned
Thu 20 Apr

buses / out-of-order 1

 [ | screencapture (browser  or download mp4 webm audio ) ]
  • interlude: buses and direct-memory access

  • idea of multiple issue + out-of-order
  • out-of-order pipeline
    • aside: predicting branch targets
  • register renaming
  • instruction queues (start)
Quiz 12 (quiz for week 14) released, due 2023-04-25 13:45
Week 15
Tue 25 Apr

out-of-order 2 / side channels

 [ | screencapture (browser  or download mp4 webm audio ) ]
  • instruction queues (finish)
  • data flow model + thinking about OOO performance

  • side channels generally
  • side channels in the cache (start)
Quiz 12 (quiz for week 14) due 13:45 (released 2023-04-20)
Wed 26 Apr

Lab: C++ OR templates


lab writeup
pipeline due by 1:59pm
Lab assigned
Thu 27 Apr

meltdown, spectre, etc.

 [ 
 (tentative) slides
| 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 2023-05-03 13:45
Week 16
Tue 02 May

Exam Review

| screencapture (browser  or download mp4 webm audio )

notes

Wed 03 May

---

(no class)
Quiz 13 (quiz for week 15) due 13:45 (released 2023-04-27)
OOO due **before lecture time**, late submissions **not normally accepted**
Week 17
Mon 08 May

Final Exam

9am-12pm.

Chemistry 402.