CSE 153 - Design of Operating Systems
Spring 2011

Overview

Instructor: Harsha V. Madhyastha

Instructor Office hours: M 4-5 p.m. in EBUII 324 or email for appointment.

TA: Adam Dou

TA Office hours: Th 3:40-4:40 p.m. in EBUII 226 or email for appointment.

Lectures: TTh 2:10 p.m. - 3:30 p.m., ENGR2 141

Lab: M 11:10 a.m., ENGR2 135

Grading: Projects (3 x 15%) + Mid-term (25%) + Final (30%).

Synopsis:

This course will cover the design of operating systems, with the discussion focused on the underlying principles and how they are implemented. Our discussion of operating system design will span the following broad topics:

The course also involves a project component, providing essential experience in programming with concurrency, implementing and unmasking abstractions, working within an existing complex system, and collaborating with other students in a group effort.

Schedule

Please monitor your account on iLearn.ucr.edu for course announcements.

(You can log on to iLearn with your UCR NetID.)

Date Topic Reading Notes
Apr 5 Overview  
Apr 7 Architectural Support for Operating Systems Chapters 1 and 2 Project 0 out
Apr 12 Processes Chapter 3  
Apr 14 Threads Chapter 4 Project 0 due, Project 1 out
Apr 19 Synchronization Chapter 6.1-6.6  
Apr 21 Semaphores and Monitors Chapter 6.7-6.10  
Apr 26 Scheduling and Deadlock Chapters 5 and 7  
Apr 28 (No Lecture. Work on Project 1.)  
May 3 Review Project 1 due, Project 2 out
May 5 Mid-term  
May 10 Memory Management Chapter 8  
May 12 Paging Chapter 9  
May 17 Page Replacement Chapter 9  
May 19 File Systems Chapter 10, 11 Project 3 out
May 24 (No Lecture.) Project 2 due
May 26 FFS, LFS, RAID Chapters 11 and 12  
May 31 RPC and NFS  
Jun 2 Final Review
Jun 7 Project 3 due
Jun 9 Final Exam (9-11am)

Projects

The course will include three implementation-heavy projects. Details here.

Acknowledgment

Material for this course is significantly based on Prof. Geoff Voelker's offering of CS120 at UCSD. Huge thanks to Prof. Voelker!