CS 351: Systems Programming

Announcements

  • It appears that the lecture recording of 9/17 wasn't properly scheduled, but the content can be found in the archived lecture at https://youtu.be/VwN2jkdkp8I?t=219 (from 0:03-1:08)

  • We will be using Discord to as our peer support and Q/A forum. If you aren't already a member, please join at https://discord.gg/exbFK5b

Calendar

Please note that readings for a given lecture should ideally be reviewed before coming to class, and will likely need to be revisited afterwards. 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)
Aug 25 Syllabus and Course overview 01-prelim Syllabus
Aug 27 - Sep 10 C Primer 02-c, x86-64-guide K&R, Pro Git chapters 1, 2
Sep 15 The Process 03-theprocess CS:APP 8.1-8.2
Sep 17 Process Management: fork/exit 04-procmgmt-1 CS:APP 8.3-8.4.2, Video (to 1:08)
Sep 22 Process Management: wait/exec 05-procmgmt-2 CS:APP 8.4.3-8.4.6
Sep 29 - Oct 6 Process Management / Unix Shell 06-procmgmt-3 CS:APP 8.5-8.6
Oct 8 - Oct 20 Memory Hierarchy and Caching 07-caching CS:APP 6.1-6.6
Oct 22 Cache Optimization
Oct 27 Dynamic Memory Allocation 08-dma CS:APP 9.9.1-9.9.4
Oct 29 - Nov 5 Implementing malloc 09-malloc CS:APP 9.9.5-9.9.14
Nov 10 - Nov 12 Garbage collection 10-gc CS:APP 9.10
Nov 24 - Nov 26 Thanksgiving break
Nov 17 - Dec 3 System-level I/O 11-io CS:APP 10.1-10.12
Dec 10 Final Exam (8AM-12PM on Blackboard) 12-final-guide

Machine Problems

Note that invitation links are inactive until assignments are released.

Released Due Writeup / Resources Repo Invite Max Points
Aug 30 Sep 5 Preliminaries / Pro Git mp-prelim 5
Sep 8 Sep 19 Bomb Lab / Scoreboard / x86 Assembly Guide mp-bomb 40
Sep 20 Oct 3 Attack Lab / Scoreboard mp-attack 70
Oct 4 Oct 24 Shell Lab / Intro video / Debugging video mp-shell 80
Oct 25 Nov 14 Cache Lab / csim-hint.c mp-cache 53
Nov 15 Dec 8 Malloc Lab / Intro video / Explicit list tutorial mp-malloc 80

Resources

Administrivia

Primary references

C references

Library / Syscall references

Misc. development tool references

Other references

Exams and practice problems