01:198:416: Operating Systems Design

Spring 2008

[ General information | ,Announcements | Course overview | Course schedule | Lecture notes | Grading ]

General Information


Course Overview

This course covers the basic operating systems concepts, with an emphasis on internals, design and performance issues. The lectures will provide a thorough discussion of the fundamentals of operating systems including the current trends in operating systems research. Each week, we will present an OS concept followed by a study of the xv6 kernel code that implements it. There will be reading assignments for each lecture. Homework and project will deepen students' understanding of the OS concepts through independent work involving user and kernel level C programming.

Course Schedule

The schedule below is still tentative, and may change over the course of the semester.

Tuesday Thursday
Jan 22
Lec 1: Introduction
Jan 24
Lec 2: Computer Systems Overview
Jan 29
Lec 3: Operating System Structure and Services
Jan 31
Lec 4:Operating System Structure and Services
Hwk 1: Measuring System Parameters
Feb 5
Lec 5: Operating System Services
Readings: traps.h, trapasm.S, trap.c, syscall.c, picirq.c, usys.S, vectors.S
Feb 7
Lec 6: Operating System Services
Hwk 1 Due
Feb 12
Lec 7: Processes
Feb 14
Lec 8: Processes
Feb 19
Lec 9: Processes
Feb 21
Lec 10: Threads
Feb 26
Lec 11: Process Synchronization

Feb 28
Lec 12: Process Synchronization
Hwk 2: User-Level Thread Library

Mar 4
Lec 13: More on Process Syncronization
Mar 6
Lec 14: Deadlocks
Mar 11
Lec 15: Midterm Review
Mar 13
Midterm Exam (1)
Mar 25
Lec 16: Memory Management
Mar 24: Hwk 1 Due
Mar 27
Lec 17: Virtual Memory
Apr 1
Lec 18: Midterm (2)
Apr 3
Lec 19: Virtual Memory
Apr 8
Lec 20: CPU Scheduling
Apr 10
Lec 21: I/O Management
Apr 15
Lec 22: I/O Management
Hwk 3: Adding Signals to xv6
Apr 17
Lec 23: I/O Management
Apr 22
Lec 24: File Systems
Apr 24
Lec 25: Security
Apr 29
Lec 26: Distributed Systems
May 1
Lec 27: Final Review

Lecture Notes

Slides may be updated before the corresponding lecture.

Lecture Topic Readings Lecture Notes
Introduction   Slides: (ppt)
Computer Systems Overview Silberschatz, Stallings: Chapter 1 Slides: (ppt)
Operating System Structure and Services Silberschatz, Stallings: Chapter 2 Slides: (ppt)
Processes Silberschatz, Stallings: Chapter 3 Slides: (ppt)
Threads Silberschatz, Stallings: Chapter 4 Slides: (ppt)
Process Synchronization Silberschatz: Chapter 6, Stallings: Chapter 5 Slides: (ppt1, ppt2)
Deadlocks Silberschatz: Chapter 8 Stallings: Chapter 6 Slides: (ppt)
Memory Management Silberschatz: Chapter 9 Stallings: Chapter 7 Slides: (ppt)
Midterm Review    
Virtual Memory Silberschatz: Chapter 10 Stallings: Chapter 8 Slides: (ppt)
CPU Scheduling Silberschatz: Chapter 6 Stallings: Chapter 9 Slides: (ppt)
I/O Management Silberschatz: Chapter 13, 14 Stallings: Chapter 11 Slides: (ppt )
File Systems Silberschatz: Chapter 10,11 Stallings: Chapter 12 Slides (updated): (ppt )
Distributed Systems    
Final Review    


The course grade will be based on exams, homework assignments, and a project. You may expect to have short quizzes in class from time to time. Classroom discussion and questions are highly encouraged. Quizzes and class participation will count if you are on a grade border line at the end of the semester. There will be a midterm and a final exam, which will be cumulative but heavily weighted toward material in the last section of the course. The weight of each exam will be 30%, while homework and project will count for 40%. In order to receive a passing grade, you must obtain a passing grade on each part of this course, namely exams, homework, and project.

Liviu Iftode