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
    Introduction; Background and Overview Chapters 1-2 Intro
    Threads N/A (see the Intro by Birrell above) Dialogue  Intro  Threads
    Synchronization Chapters 3 (3.4.1), 6 and 7 Locks  Lock Use  CV's
    Semaphores  Monitors  Bugs
    Summary Dialogue
    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
    Virtual Memory Chapters 8 and 9 Address Spaces  Memory API
    Address Translation  Segmentation
    Paging  TLBs (Faster)
    Smaller Page Tables  Replacement/Swapping
    Replacement Algorithms
    Scheduling Chapter 5 Scheduling  MLFQ  Multiple CPUs
    I/O Chapters 12 and 13 Devices  Hard Disks
    File Systems Chapters 10 and 11 (excluding 11.8, 11.9) Files  File System  FSCK & Journaling
    Interprocess Communication and Networking Chapter 3 (3.4-3.6) Not Covered