Spring 2015

Prof. Sanjeev Setia
setia at

TuTh 10:30-11:45, AB 2026


This course provides an introduction to the fundamental concepts in operating systems.


CS 310 (Data Structures) and CS 367 (Computer Systems & Programming) and CS 465 (Computer Architecture). Students are expected to be comfortable with programming in C.


The required textbook for this class is Operating Systems in Depth: Design and Programming by Thomas Doeppner (Wiley, 2011).

Course Outline

Week 1: Introduction; Processes & Threads
Week 2 Concurrent Programming
Week 3: Concurrent Programming (cont'd)
Week 4: Basic Concepts; OS Design - Virtual Machines and Microkernels
Week 5: OS Design - Virtual Machines and Microkernels (cont'd)
Week 6: CPU Scheduling & Deadlocks
Week 7: File Systems and I/O
Week 8 Spring Break
Week 9 File Systems and I/O (cont'd)
Week 10: Midterm Review and Midterm
Week 11: Memory Management and Virtual Memory
Week 12: Memory Management and Virtual Memory (cont'd)
Week 13: Networks and Distributed Systems
Week 14: Distributed File Systems
Week 15 Distributed File Systems (cont'd)


The grade for the course will be based on the following components: (i) Programming assignments (50%) (ii) Mid-term exam (20%) (iii) Final exam (30%).

All exams are closed book. The final exam will be comprehensive in nature, i.e., it will cover the whole course. In order to obtain an A, your final score should at least be 85%. A score below 50% will result in an F.

Exam Schedule

Mid-term exam: March 26 (subject to change) Final exam: May 12, 10:30 AM - 1:15 PM.

Programming Assignments

There will be five assignments, the first two of which will have to be completed individually by each student. The assignments will involve designing and implementing parts of an actual operating system called OS/161. You need to be relatively comfortable with programming in C to complete these assignments.

You are expected to abide by the University's honor code and the CS department's honor code and academic integrity policy during the semester, i.e., collaboration on a programming assignment is unacceptable. Any violation of the honor code will result in a referral to the honor council with a recommendation that the student be awarded an F for the class.

NOTE: I will be using MOSS to detect plagiarism in the programming assignments.

Office Hours

Office hours will be on Wednesday from 2-4 pm in my office (Room 4300, Nguyen Engineering Building), or by appointment.

Class Home Page

All handouts and other course material will be available at the Blackboard page for the course

Computer Accounts

If you're planning to use the computers on campus for doing your projects, please obtain an Volgenau School labs Linux account. Your project will be graded on the VSE labs Linux server, so if you plan to use your own computers for the project, you will need to use an identical Linux environment.