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).

Skadron’s annotated slides are available as PDFs on Canvas, under Files.

DateTopicAssignment
Week 1
Tue 27 Aug

introduction / building intro

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

overview, (partially) compilation

  • course outline
  • pointers in C (review?)
Wed 28 Aug

(no lab)

Thu 29 Aug

building

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

compilation, makefiles

(The 12pm recording is missing the first part, but is available through Panopto via Canvas; the first part of the 2pm recording that covers what’s missing from the 12pm recording is also there.)

  • .o, .a, .so files
  • dynamic and static linking
  • make
    • rules
Fri 30 Aug
Week 2
Tue 03 Sep

accounts

 [ 
Reiss's slides from: buildingaccounts
| 12pm screencapture (browser  or download mp4 webm audio )| 2pm 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 04 Sep

Lab: make


lab writeup
Lab assigned
Thu 05 Sep

privilege / exceptions

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

kernel §1-2.2, 3

  • kernel mode
  • system calls
  • memory protection
Quiz week02 (quiz for week 2) released, due 2024-09-10 12:15
Fri 06 Sep
Week 3
Tue 10 Sep

exceptions / signals

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

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

  • non-system-call exceptions
    • timer interrupt
    • I/O
  • context switches

  • Unix signals
    • signal handlers and implementation
Quiz week02 (quiz for week 2) due 12:15 (released 2024-09-05)
Wed 11 Sep

Lab: permissions


lab writeup
Lab assigned
Thu 12 Sep

processes 1

 [ 
Reiss's slides from: kernelunix-api
| 2pm 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 2024-09-17 12:15
Fri 13 Sep
warmup due by 11:59pm
Week 4
Tue 17 Sep

processes 2

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

kernel §3.3.3; threads

(Reiss out of town)

(See Panopto on Canvas for videos; videos won’t be posted here for some time.)

  • waiting for processes
  • file descriptors
Quiz week03 (quiz for week 3) due 12:15 (released 2024-09-12)
Wed 18 Sep

Lab: signal handling


lab writeup
Lab assigned
Thu 19 Sep

process 3

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

kernel §3.3.3; threads

(Reiss out of town)

(See Panopto on Canvas for videos; videos won’t be posted here for some time.)

  • dup2
  • pipe, redirection
Quiz week04 (quiz for week 4) released, due 2024-09-24 12:15
Fri 20 Sep
Week 5
Tue 24 Sep

virtual memory 1

 [ 
Reiss's slides from: vm
| 12pm screencapture (browser  or download mp4 webm audio )| 2pm 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 12:15 (released 2024-09-19)
Wed 25 Sep

Lab: fork lab


lab writeup
Lab assigned
Thu 26 Sep

virtual memory 2

 [ 
Reiss's slides from: vm
| 12pm screencapture (browser  or download mp4 webm audio )| 2pm 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 2024-10-01 12:15
Fri 27 Sep
timing due by 11:59pm
Week 6
Tue 01 Oct

virtual memory 3 / caches 0

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

VM §2.1, 3.2; cache

  • pagetable assignment
  • as a tree
  • multi-level lookup example

  • caching idea
  • memory hierarchy
Quiz week05 (quiz for week 5) due 12:15 (released 2024-09-26)
Wed 02 Oct

Lab: virtual memory exploration


lab writeup
Lab assigned
Thu 03 Oct

caches 1

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

cache

  • direct-mapped caches
    • valid bits, tags
Quiz week06 (quiz for week 6) released, due 2024-10-08 12:15
Fri 04 Oct
fork HW due by 11:59pm
Week 7
Tue 08 Oct

caches 2

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

cache

  • set-associative caches
  • (briefly) replacement policies
  • cache misses and C code (start)
Quiz week06 (quiz for week 6) due 12:15 (released 2024-10-03)
Wed 09 Oct

Lab: sync games


lab writeup
Lab assigned
Thu 10 Oct

caches 3

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

cache

  • cache misses and C code (finish)
  • cache write policies
Quiz week07 (quiz for week 7) released, due 2024-10-17 12:15
Fri 11 Oct
pagetable part 1 due by 11:59pm
Week 8
Tue 15 Oct
(no class)
Wed 16 Oct

Lab: cache exercises


lab writeup
Lab assigned
Thu 17 Oct

TLB / threads

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

cache, threads, pthreads

  • the TLB

  • creating new threads
  • thread use examples

  • problem of synchronization
Quiz week08 (quiz for week 8) released, due 2024-10-22 12:15
Quiz week07 (quiz for week 7) due 12:15 (released 2024-10-10)
Fri 18 Oct
Week 9
Tue 22 Oct

synchronization 1 / deadlock

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

sync, pthreads

  • problem of synchronziation
  • locks and mutexes
  • barriers

  • deadlock
    • examples
Quiz week08 (quiz for week 8) due 12:15 (released 2024-10-17)
Wed 23 Oct

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 24 Oct

synchronization 2

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

sync

  • deadlock (con’t)
    • definition
    • preventing/avoiding
  • producer/consumer problem
  • monitors (start)
Quiz week09 (quiz for week 9) released, due 2024-10-29 12:15
Fri 25 Oct
pagetable 3 (post code review) due by 11:59pm
Week 10
Tue 29 Oct

synchronization 3

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

sync

  • monitors
  • false sharing
Quiz week09 (quiz for week 9) due 12:15 (released 2024-10-24)
Wed 30 Oct

Lab: pthreads (dining philosophers)


tentative lab writeup
Lab assigned
Thu 31 Oct

networking 1

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

protocols §1-6

  • briefly, transactions

  • 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 week10 (quiz for week 10) released, due 2024-11-07 12:15
Fri 01 Nov
cache programs due by 11:59pm
Week 11
Tue 05 Nov
(no class)
Wed 06 Nov

Lab: openmp


lab writeup
Lab assigned
Thu 07 Nov

networking 2 / secure channels 1

 [ 
Reiss's slides from: networksecure
| 12pm screencapture (browser  or download mp4 webm audio )| 2pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

security §1-3

  • NAT
  • URLs
  • DHCP

  • cryptography (start)
    • symmetric encryption
    • asymmetric encryption
    • digital signature
Quiz week11 (quiz for week 11) released, due 2024-11-12 12:15
Quiz week10 (quiz for week 10) due 12:15 (released 2024-10-31)
Fri 08 Nov
TLB due by 11:59pm
Week 12
Tue 12 Nov

secure channels 2

 [ 
Reiss's slides from: secure
| 12pm screencapture (browser  or download mp4 webm audio )| 2pm screencapture (browser  or download mp4 webm audio ) ]
Reading:

security §1-3

  • replay attacks
  • public key infrastructure
  • extra cryptography bits
    • cryptographic hashes
    • key exchange
Quiz week11 (quiz for week 11) due 12:15 (released 2024-11-07)
Wed 13 Nov

Lab: networking


lab writeup
Lab assigned
Thu 14 Nov

secure channels 3 / pipelining 1

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

processors §1-3

  • TLS protocol outline

  • review: single-cycle CPU
  • pipelining idea
  • pipelining for the CPU
  • pipelining tradeoffs
  • hazards and hazard handling
    • stalling
    • branch prediction, briefly
    • forwarding
Quiz week12 (quiz for week 12) released, due 2024-11-19 12:15
Fri 15 Nov

(original due date for life)

Week 13
Mon 18 Nov
life due by 11:59pm
Tue 19 Nov

pipelining 2

 [ 
Reiss's slides from: pipelineooo
| 2pm 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 week12 (quiz for week 12) due 12:15 (released 2024-11-14)
Wed 20 Nov

Lab: secure channels lab


lab writeup
Lab assigned
Thu 21 Nov

out-of-order 1

 [ 
Reiss's slides from: ooobpred
| 2pm 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 week13 (quiz for week 13) released, due 2024-11-26 12:15
Fri 22 Nov
pipeline due by 11:59pm
Week 14
Tue 26 Nov

out of order 2 / side channels

 [ 
Reiss's slides from: spectre
| 2pm screencapture (browser  or download mp4 webm audio ) ]
  • side chnanels generally
  • side channels in the cache
Quiz week14 (quiz for week 14) released, due 2024-12-03 12:15
Quiz week13 (quiz for week 13) due 12:15 (released 2024-11-21)
Wed 27 Nov
(no class)
Thu 28 Nov
(no class)
Fri 29 Nov
(no class)
Week 15
Tue 03 Dec

meltdown/spectre

 [ 
Reiss's slides from: spectre
| 2pm 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 week14 (quiz for week 14) due 12:15 (released 2024-11-26)
Wed 04 Dec

Lab: side channel


lab writeup
Lab assigned
Thu 05 Dec

exam review

| 2pm screencapture (browser  or download mp4 webm audio )
OOO due before 12:29PM, late submissions not normally accepted
Fri 06 Dec
Week 16
Mon 09 Dec

Final Exam

Combined final time with other section.

7PM-10PM.

12:30pm section — Rice 130.

2pm section — Gilmer 301.