CS 351: Systems Programming

Announcements

  • TA office hours have been posted in the Resources/Administrivia section

  • Welcome to the Spring 2023 edition of CS 351: Systems Programming!

Calendar

Most readings are from "Computer Systems: A Programmer's Perspective, 3rd Edition" (CS:APP3e). Lecture slides/notes will be updated after class, when available.

The lecture calendar is tentative and may be updated.

Dates Topic Notes Reading(s)
Jan 11 Syllabus and Course overview 01-prelim Syllabus
Jan 13 - Jan 27 C Primer 02-c K&R
Jan 27 - Feb 1 x86-64 Primer x86-64-guide CS:APP 3
Feb 3 The Process 03-theprocess CS:APP 8.1-8.2
Feb 8 - Feb 10 Process Management: fork/exit 04-procmgmt-1 CS:APP 8.3-8.4.2
Feb 15 - Feb 17 Process Management: wait/exec 05-procmgmt-2 CS:APP 8.4.3-8.4.6
Feb 22 - Mar 1 Process Management / Unix Shell 06-procmgmt-3 CS:APP 8.5-8.6
Mar 3 Memory Hierarchy 07-caching CS:APP 6.1-6.6
Mar 8 Caching and Cache Optimization 07-caching CS:APP 6.1-6.6
Mar 10 Midterm Exam
Mar 13 - Mar 17 Spring Break
Mar 22 - Mar 29 Virtual Memory 08-vm CS:APP 9.1-9.7
Mar 31 Dynamic Memory Allocation 09-dma CS:APP 9.9.1-9.9.4
Apr 5 - Apr 12 DMA implementation 10-malloc CS:APP 9.9.5-9.9.14
Apr 14 - Apr 19 Garbage collection 11-gc CS:APP 9.10-9.11

Machine Problems

Note that invitation links are inactive until assignments are released.

Released Due Writeup / Resources Repo Invite Max Points
Jan 18 Jan 29 Preliminaries / Pro Git mp-prelim 5
Jan 30 Feb 12 Bomb Lab / Scoreboard / x86 Assembly Guide mp-bomb 40
Feb 13 Feb 26 Attack Lab / Scoreboard mp-attack 70
Feb 27 Mar 12 Shell Lab / Intro video / Debugging video mp-shell 80
Mar 20 Apr 2 Cache Lab / Cache Viz / csim-hint.c mp-cache 53

Resources

Administrivia

Primary references

C references

Library / Syscall references

Misc. development tool references

Other references

Practice problems