Operating Systems

Bolzano, Spring '08


  Instructor:           David Toman (david@cs.uwaterloo.ca)   
  Office:               Post Office 228 (office hours by appointment)    
  Lectures/Exercises    Fri 10:30-12:30   E221
                        Fri 14:00-16:00   E221 

  Class Info:           http://db.uwaterloo.ca/~david/os


Syllabus:

  • Objectives and Outcome:
    The OS course builds on the basic notions on computer systems architectures, introducing the fundamentals of operating systems design and implementation. Course topics include a general overview of the components and data structures of an operating system, implementation of multi-processing, mutual exclusion and synchronization. Scheduling algorithms, memory management, file systems and device drivers are also introduced. Then, the OS course teaches the fundamentals of engineering operating systems. You will study virtual memory, kernel and user mode, system calls, threads, context switches, interrupts, inter-process communication, coordination of concurrent activities, and the interface between software and hardware. Most importantly, you will study the interactions between these concepts, and how to manage the complexity introduced by the interactions. Unix (Linux) implementations are used as case studies throughout the course.
  • Basic Info:
    Credits: 8 (48 lectures, all in English, 24 exercises)
    Assesment: written final exam, project
  • Final Examination: July 8 9-11 a.m. in D003
    Project Due: June 24, 2008 (and a presentation on June 25, 2008); see the detailed rules here.

  • Lectures:

    1. Introduction to Operating Systems; Review of Hardware and Architectures (slides)
    2. Processes and Threads; Inter Process Communication (slides)
    3. Scheduling; Deadlocks (slides)
    4. Memory Organization; Memory Protection Approaches (slides)
    5. Virtual Memory; Paging and Page Replacement
    6. Input and Output Basics; Devices and Interrupts (slides)
    7. More on I/O
    8. Networking, RPC (intro, ethernet, and TCP/IP)
    9. File Systems (slides)
    10. Multiple CPUs; Distributed Operating Systems (slides)
    11. Security and Attacks; Basics of Crypto (slides)
    12. Virtualization (extra lecture) and owerflow Q&A in preparation for final exam

  • Example questions from the textbook (by chapter #):

    These are example questions from the exercises in the textbook that are indicative of what to expect on the final exam. This list is, however, only for practica and other (though similar) questions may be on the final.

    1. 1-3,7,8,10,15,17
    2. 1,4,5,10,12,14,18,20,23,26,35-37,45
    3. 3,4,7,10-12,21,22,2,32,34,37,38
    4. 3,5-9,11-13,20,21,29,33
    5. 2,6,9,10,12,13,20,24,28,34,37
    6. 3,6,8,11,13,18,22,29

  • Labs (tentative schedule by lab #):

  • Extra material: