CS 350 - Operating Systems

Reading Materials

Web Page for Current Term : University of Waterloo : Faculty of Mathematics : School of Computer Science

A Collection of Tutorials and Useful Information

Course Readings

Extra Readings / Notes


  • Operating Systems: Three Easy Pieces
    Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
    This is not a required text but it is a good source for readings on material covered in class. The parts of this book are available online for free, you can get an e-copy for about $10 or hard copies for a good price. The links included below point to the individual chapters.
    NOTE: Some of the API's used in this text are different from those used in our class but it should usually be pretty easy to translate between the two.
  • In the table below, the column labeled "Silberschatz" refers to chapters in the 8th Edition of Operating System Concepts, by Silberschatz, Galvin and Gagne (John Wiley and Sons), which was formerly used as a textbook for this course. Although we are no longer using it, we've left the Silberschatz chapter references in the table for the benefit of those who may have copies of that text. Unless you already have a copy of the Silberschatz text, we recommend Three Easy Pieces.

    Lecture Notes

    Subject Silberschatz Three Easy Pieces 2up Notes 1up Notes
    Introduction; Background and Overview Chapters 1-2 Intro 2-up 1-up
    Threads N/A (see the Intro by Birrell above) Dialogue  Intro  Threads 2-up 1-up
    Synchronization Chapters 3 (3.4.1), 6 and 7 Locks  Lock Use  CV's
    Semaphores  Bugs
    Summary Dialogue
    2-up 1-up
    Processes, The Kernel, and System Calls Chapters 2 (2.3, 2.4) and 3 (3.1-3.3) Dialogue  Processes
    Process API  Context Switch & Sys Calls
    2-up 1-up
    Virtual Memory Chapters 9,9 Address Spaces  Memory API
    Address Translation  Segmentation
     Free Space Mgmt  Paging  TLBs
    Smaller Page Tables  Replacement/Swapping
    Replacement Algorithms
    2-up 1-up
    Scheduling Chapter 5 Scheduling  MLFQ  Multiple CPUs 2-up 1-up
    Devices and I/O Chapters 12 and 13 I/O Devices  Hard Disk Drives 2-up 1-up
    File Systems Chapters 10 and 11 (excluding 11.8, 11.9) Files and Directories  File System Implementation  FSCK & Journaling 2-up 1-up
    Interprocess Communication and Networking Chapter 3 (3.4-3.6) Not Covered 2-up 1-up