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

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
  • 18-213 lectures are presented by Prof. Swarun Kumar
  • 18-613 lectures are presented by Prof. Greg Kesden

Schedule (subject to change)

Date Lecture/Groups Reading   Labs

Jan 16 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 17 Overview (code , pptx , pdf) 1
Jan 19 Bits, Bytes, Integers, & Endianness (pptx , pdf , code) 2.1-2.3 L1 (datalab) out

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

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

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

Feb 13 Small groups: Attack lab related material, esp. gadgets (activity) L0 2nd deadline
Feb 14 The Memory Hierarchy (pptx , pdf) 6.1-6.3
Feb 16 Cache Memories (pptx , pdf) 6.4-6.7 L3 due, L4 (cachelab) out

Feb 20 Small groups: Memory hierarchy and locality exam problems, cache organization, cache traces and old exam problems.
Feb 21 Design and Debugging (pptx , pdf)
Feb 23 Virtual Memory: Concepts (pptx , pdf) 9.1-9.6

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

Mar 6 Small groups don't meet -- University break
Mar 7 No class -- University break
Mar 9 No class -- University break

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

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

Mar 27 Small groups: Fork bomb with signals, Unbox tsh lab L5 due, L6 (tshlab) out
Mar 28 System Level I/O (pptx , pdf , code) 10
Mar 30 Network Programming (Part I) (pptx , pdf , code)

Apr 3 Small groups: I/O bomb problems, files and redirection in tshlab.
Apr 4 Network Programming (Part II) (pptx , pdf , code)
Apr 6 Concurrent programming (pptx , pdf , code) 12.1-12.3

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

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

Apr 24 Small groups: Final exam review
Apr 25 Code optimization (pptx , pdf) 5
Apr 27 Future of Computing
Apr 28 L7 due