CS 690 Advanced Operating Systems - Class Schedule

Fall 2008

 

Lectures are organized by subject.  For each lecture there will be assigned reading either from the textbook, the supplemental textbook, a paper or handout.  Read the material before class so you will be able to follow the lecture, ask intelligent questions, and participate in class room discussion.

NOTE:  SCHEDULE SUBJECT TO CHANGE!

 

This schedule is subject to change. 

 

Fundamentals: 8/19, 8/21

  1. Course overview. 
  2. Review of fundamental operating systems concepts including OS structure, processes and threads, semaphores and other synchronization basics, memory management and scheduling. (Web based notes and undergraduate OS text)
  3. Review of computer system organization (Web based notes)

 

OS Kernel Structures: 8/26, 8/28

  1. Microkernel and extensible operating system kernels.
    Assignment, from the Reading List   See the section “How To Read a Research Papers”.
     “Exokernel: An Operating System Architecture for Application-Level Resource Management”  Introduction, Sections 1, 2, 3.1; skim section  8 and conclusions
    Extensibility, Safety and Performance in the SPIN Operating System.  Sections 1, 2, 3.1, 3.2

2.      Virtual machine architectures  (papers from reading lists)
Assignment, from the reading list
Virtual Machine Monitors: current Technology and Future Trends
“Xen and the Art of Virtualization
Scale and Performance in the Denali Isolation Kernel

 

Distributed System Overview: 9/2, 9/4, 9/9, 9/11

  1. Introduction (Tanenbaum, Chapter 1) + web notes
  2. Architectures (Tanenbaum, Chapter 2.1 – 2.3 )
  3. Threads and virtualization in distributed systems (Tanenbaum, Chapter 3.1 – 3.2)
  4. Clients, servers, and code migration (Tanenbaum, Chapter 3.3 – 3.6)

 

Distributed Systems Communication: , 9/16, 9/18

  1. Fundamentals and Remote Procedure Call (Tanenbaum, Chapter 4.1, 4.2)
  2. Overview of message-oriented, stream-oriented, multicast communication (Tanenbaum Chapter 4.3.1, 4.4.1, 4.5)

 

Distributed Systems Principles: 9/23

  1. Naming (Tanenbaum 5.1 + a few other topics)

 

Test 1: 9/25

 

Distributed Systems Principles: 9/30, 10/2

  1. Consistency and Replication (Tanenbaum 7.1, selected topics from 7.2 and 7.3,  7.4)
  2. Fault tolerance (Tanenbaum, 8.1)

 

Synchronization Part 1: 10/7, 10/14

  1. Synchronization in centralized systems – semaphores (review – Stallings 5.1-5.3 or equivalent in another undergrad text)
  2. Synchronization problems – producer/consumer, reader/writer, monitors (Web notes, undergraduate textbook)

 

Synchronization Part 2: 10/16, 10/21

  1. Physical and logical clocks (Tanenbaum Chapter 6.1, 6.2)
  2. Mutual exclusion in distributed systems (Tanenbaum Chapter 6.3)
  3. Election algorithms (Tanenbaum Chapter 6.5)

 

Synchronization Part 3: 10/23

  1. Detecting race conditions in multithreaded programs
    “Eraser: A Dynamic Data Race Detector for Multithreaded Programs”, Stefan Savage, Michael Burrows, Greg Nelson, Partick Sobalvarro, Thomas Anderson; ACM Transactions of Computer Systems, Volume 15, No. 4, pp. 391-411, 1997.
    “Racetrack: Efficient Detection of Data Race Conditions via Adaptive Tracking”, Yuan Yu, Tom Rodeheffer, Wei Chen, SOSP ’05.

 

File Systems: 10/28

  1. File System Fundamentals: 
    A Fast File System for UNIX”, Marshall Kirk McKusick, William N. Joy,
    Samuel J. Leffler, Robert S. Fabry, Computer Systems, volume 2, number 3, pp. 181-197, 1984.  

File Systems: 10/30, 11/4

  1. Distributed File Systems: (Tanenbaum, Chapter 11)

 

Test 2: 11/6

 

Peer-to-Peer File Systems: 11/11

 

Memory Management:  4/10, 4/15, 4/17, 4/22

 

Final Exam: 12/4 – 6:30-9:00