CS 350 - Operating Systems

Reading Materials

Course Readings

Textbook

Lecture Notes

Lecture notes are required for this course. Solutions to the in-class exercises will only be provided in lecture. They are meant to supplement the lecture material and help provide concrete examples of how key ideas work.

Subject Silberschatz Three Easy Pieces Slides Exercises
Introduction Chapters 1-2 Intro Slides
Processes and System Calls Chapters 2 (2.3, 2.4) and 3 (3.1-3.3) Dialogue   Processes
Process API  
Slides
minish.c pipesh.c redirsh.c
Processes
Threads Chapter 4 Dialogue  Intro  Threads Slides Threads
Fibers
Synchronization Chapters 3 (3.4.1), 6 and 7 Locks  Lock Use  CV's
Semaphores  Bugs
Summary Dialogue
Slides Part 1
Slides Part 2
spin-*.c
Concurrency
Synchronization
Handover
Semaphore
System Calls and Exceptions Context Switch & Sys Calls Slides
Virtual Memory Chapters 8,9 Address Spaces   Memory API
Address Translation  Segmentation
  Free Space Mgmt  Paging   TLBs
Smaller Page Tables
  Replacement/Swapping
Replacement Algorithms
Slides Part 1
Slides Part 2
TLB
Paging
Devices and I/O Chapters 12 and 13 I/O Devices  Hard Disk Drives Slides Disk
File Systems Chapters 10 and 11 (excluding 11.8, 11.9) Files and Directories
  File System Implementation
  FSCK & Journaling
Slides Part 1
Slides Part 2
Scheduling Chapter 5 Scheduling  MLFQ  Multiple CPUs Slides
Bonus: Debugging Slides

Note: The columns "Silberschatz" and "Three Easy Pieces" in the table above refer to chapters from the suggested textbooks.

Extra Readings / Notes



A Collection of Tutorials and Useful Information