CS 351: Systems Programming

Announcements

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)
May 15 Syllabus and Course overview 01-prelim Syllabus
May 15 - May 22 C Primer 02-c K&R
May 22 x86-64 Primer x86-64-guide CS:APP 3
May 22 The Process 03-theprocess CS:APP 8.1-8.2
May 24 Process Management: fork/exit 04-procmgmt-1 CS:APP 8.3-8.4.2
May 24 Process Management: wait/exec 05-procmgmt-2 CS:APP 8.4.3-8.4.6
May 29 Memorial Day
May 31 Process Management / Unix Shell 06-procmgmt-3 CS:APP 8.5-8.6
Jun 5 Memory Hierarchy 07-caching CS:APP 6.1-6.6
Jun 5 - Jun 7 Caching and Cache Optimization 07-caching CS:APP 6.1-6.6
Jun 10 Midterm Exam
Jun 12 Virtual Memory 08-vm CS:APP 9.1-9.7
Jun 14 Dynamic Memory Allocation 09-dma CS:APP 9.9.1-9.9.4
Jun 14 DMA implementation 10-malloc CS:APP 9.9.5-9.9.14
Jun 19 Juneteenth
Jun 21 Garbage collection 11-gc CS:APP 9.10-9.11
Jun 24 Final Exam 12-final

Machine Problems

Note that invitation links are inactive until assignments are released.

Released Due Writeup / Resources Repo Invite Max Points
May 15 May 17 Preliminaries / Pro Git mp-prelim 5
May 22 May 26 Bomb Lab / Scoreboard / x86 Assembly Guide mp-bomb 40
May 30 Jun 6 Attack Lab / Scoreboard / Intro video mp-attack 70
Jun 7 Jun 14 Shell Lab / Intro video / Debugging video mp-shell 80
Jun 14 Jun 23 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