Overview
Instructor: Harsha V. Madhyastha
Instructor Office hours: T 12-1 p.m. in ENGR2 324 or email for appointment.
TA: Dorian Perkins
TA Office hours: W 2-3 p.m. in ENGR2 110
Lectures: TTh 8:10 a.m. - 9:30 a.m., ENGR2 143
Lab: M 6:10 p.m. - 9:00 p.m., ENGR2 135
Grading: Projects (10% + 2 x 15%) + Homeworks (3 x 5%) + Mid-term (20%) + Final (25%).
Textbooks:
- Operating Systems: Principles and Practice, Anderson and Dahlin (Local copy)
- Operating Systems Concepts, Silberschatz, Galvin, and Gagne
- For Virtual Memory related chapters: Operating Systems: Four Easy Pieces, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
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:
- OS kernel organization and structure
- Processes and threads
- Concurrency and synchronization
- Memory management
- File systems
- Communication
Policies:
- No make-up examination is allowed unless permission is obtained from the instructor prior to the exam date.
- You are permitted 4 late days across all projects. A 5 point penalty will be imposed for every additional day of delay.
- Discussing homeworks and projects with other students in the class is encouraged. However, every student must independently write solutions to every homework, and every project group must independently write code for every project. Any violation or suspected violation of academic integrity will be dealt with according to the UCR discipline procedure.
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 |
| Jan 10 | Overview | Chapter 1 | Project 0 out |
| Jan 12 | Architectural Support for Operating Systems | Chapter 2 | |
| Jan 17 | Processes | Chapter 3 | |
| Jan 19 | Threads | Chapter 4 | Project 0 due, Project 1 out |
| Jan 24 | Synchronization | Chapter 5.1-5.3 | |
| Jan 26 | (No Lecture.) | Homework 1 out | |
| Jan 31 | Semaphores and Monitors | Chapter 5.4-5.7 | Project 1 design doc due |
| Feb 2 | Scheduling and Deadlock | Chapters 6 and 7 | Homework 1 due |
| Feb 7 | Review | Project 1 due | |
| Feb 9 | Mid-term | Project 2 out | |
| Feb 14 | (No Lecture.) | ||
| Feb 16 | Memory Management | ||
| Feb 21 | Segmentation and Paging | Chapters 15, 17, 18, and 19 of OSFEP | Project 2 design doc due |
| Feb 23 | Page Replacement | Chapters 20 and 21 of OSSFEP | Homework 2 out |
| Feb 28 | File Systems | Chapters 11, 12, and 13 | Project 2 due |
| Mar 1 | FFS, LFS, RAID | Chapters 13 and 14 | Homework 2 due, Project 3 out |
| Mar 6 | RPC and NFS | Homework 3 out | |
| Mar 8 | Virtual Machines | Project 3 design doc due | |
| Mar 13 | Final Review | Homework 3 due | |
| Mar 15 | Advanced Topics | ||
| Mar 17 | Final Exam | ||
| Mar 20 | Project 3 due |
Homeworks
- Homework 1: Due on Feb 2nd
- Homework 2: Due on Mar 1st
- Homework 3: Due on Mar 13th
Projects
The course will include three implementation-heavy projects. Details here.