18-213/18-613: Computer Systems, Spring 2024

Notes on links

  • pptx links are to Powerpoint versions of the lectures
  • pdf links are to Adobe Acrobat versions of the lectures
  • code links are to directories containing code used for class demonstrations
  • tar links are to archive files in TAR format. Use the tar command on a linux machine to unpack these

Schedule (subject to change)

Date Lecture/Recitation 213 Lec   Reading   Labs

Jan 15 Small groups: Introductions, Overview of the role of group and TAs, Getting started with the shark machines, Overview of Lab 0 (Informal meeting due to MLK Day observance on Monday) L0 (cprogramminglab) out (pdf, tar)
Jan 16 Overview (code , pptx , pdf) SK 1
Jan 18 Bits, Bytes, Integers, & Endianness (code , pptx , pdf , pptx , pdf , code) GK 2.1-2.3 L1 (datalab) out

Jan 22 Bit ops, Int rep, Endianness, Lean forward to Data Lab int puzzles.
Jan 23 Floating Point (pptx , pdf) GK 2.4 L0 (cprogramminglab) 1st deadline
Jan 25 Machine Prog: Basics (pptx , pdf , code) SK 3.1-3.5

Jan 29 Small groups: Floating point, Unbox bomb, "Example bomb"
Jan 30 Machine Prog: Control (pptx , pdf , code) GK 3.6 L1 due, L2 (bomblab) out
Feb 1 Machine Prog: Procedures (pptx , pdf , code) SK 3.7

Feb 5 Small groups: Assembly and Stack review and old exam problems
Feb 6 Machine Prog: Data (pptx , pdf) SK 3.8-3.9,3.11
Feb 8 Machine Prog: Advanced (pptx , pdf , code) GK 3.10 L2 due, L3 (attacklab) out

Feb 12 Small groups: cache organization, cache traces L0 2nd deadline
Feb 13 The Memory Hierarchy (pptx , pdf) GK 6.1-6.3
Feb 15 Cache Memories (pptx , pdf) SK 6.4-6.7 L3 due, L4 (cachelab) out

Feb 19 Small groups: Memory hierarchy and locality exam problems, block matrix operations.
Feb 20 Design and Debugging (pptx , pdf) GK
Feb 22 Virtual Memory:Concepts (pptx , pdf) SK 9.1-9.6

Feb 26 Small groups: midterm review, VM reinforcement, traces HW 6/7 (low stakes midterm) out on 2/28
Feb 27 Virtual Memory:Systems (pptx , pdf) SK 9.7-9.8
Feb 29 Dynamic Memory Allocation: Basics (pptx , pdf , code) GK 9.9 L4 due
Mar 1 HW 6/7 (low stakes midterm) due

Mar 4 Small groups don't meet -- University break
Mar 5 No class -- University break break
Mar 7 No class -- University break break

Mar 11 Small groups: Malloc review, gdb, valgrind, Malloc lab unboxing L5 (malloclab) out
Mar 12 Dynamic Memory Allocation: Advanced (pptx , pdf) GK 9.10-9.12
Mar 14 Linking (pptx , pdf) GK 7

Mar 18 Small groups: Heap checker cases, removing footers, malloc trace exam problems, etc. L5 checkpoint due
Mar 19 ECF: Exceptions & Processes (pptx , pdf , code) SK 8.1-8.4
Mar 21 ECF: Signals (pptx , pdf , code) SK 8.5

Mar 25 Small groups: Fork bomb with signals, Unbox tsh lab L5 due, L6 (tshlab) out
Mar 26 System Level I/O (pptx , pdf , code) SK 10
Mar 28 Network Programming (Part I) (pptx , pdf , code) GK 11.3-11.4

Apr 1 Small groups: I/O bomb problems, files and redirection in tshlab.
Apr 2 Network Programming (Part II) (pptx , pdf , code) SK 11.4-11.6
Apr 4 Concurrent programming (pptx , pdf , code) GK 12.1-12.3

Apr 8 Small groups: Proxylab unboxing. Heavy emphasis on role of proxy and parts of lab. L6 Due, L7 (proxylab) out
Apr 9 Synchronization: Basic (pptx , pdf , code) SK 12.4, 12.5.1-3
Apr 11 No class — University break break

Apr 15 Small groups: Critical resources, critical sections, mutex problems, at-most-n and sempahore problems
Apr 16 Synchronization: Advanced (pptx , pdf , code) SK 12.5.4-5, 12.7-8
Apr 18 Thread-Level Parallelism (pptx , pdf , code) GK 12.6 L7 checkpoint due

Apr 22 Small groups: Final exam review
Apr 23 Code optimization (pptx , pdf) GK 5
Apr 25 Future of Computing SK
Apr 26 L7 due