CS550 - Operating Systems

Prof. Kartik Gopalan

[Syllabus] [Lectures] [Assignments] [Tests] [Policies]


This course will cover classical and advanced concepts in Operating Systems. Topics include:

We will cover a mix of background material and advanced topics. Assignments and course projects will help you get your hands dirty with Linux kernel.

Course Information
Time: Mon and Wed 4:40pm to 6:05pm
Location: AM 189

Credit hours and course expectations: This course is a 3-credit course, which means that students are expected to do at least 9 to 9.5 hours of course-related work or activity each week during the semester. This includes scheduled class lecture/discussion meeting times as well as time spent completing assigned readings, studying for tests and examinations, participating in lab sessions, preparing written assignments, and other course-related tasks.


Evaluation Criteria:

Instructor: Kartik Gopalan.

Teaching Assistants: Ozgur Kilic, Akshay Borse, Yukun Liu

Contact email oscourse@binghamton.edu -- This email address reaches all the TAs and the intructors, one of whom will respond to you.

Office Hours: Mon and Wed 6:05-7pm after Class, in AM189. Or by appointment within one to two days. Please email oscourse@binghamton.edu for appointments.


The primary textbook will be Modern Operating Systems, by Andrew Tanenbaum, Prentice Hall; 4th edition. We will also cover various research papers that will be available online.

Other Recommended Material:

[Syllabus] [Lectures] [Assignments] [Tests] [Policies]

Lecture Slides

Please clear your browser's cache and reload this page to see the latest listing of slides below.

  1. Introduction
  2. Processes
  3. Inter Process Communication
  4. Threads
  5. Kernel Modules
  6. System Calls
  7. Concurrency - Race Conditions and Deadlocks
  8. Concurrency - Semaphores, Condition Variables, and Producer Consumer
  9. Events vs Threads
  10. Virtual Memory Management
  11. TLB Coverage and Superpages
  12. "The UNIX time-sharing system", Dennis M. Ritchie and Ken Thompson, 1974
  13. Introduction to Virtual Machines
  14. Operating-System-Level Virtualization (Containers)
  15. System Security
  16. Live Migration of Virtual Machines
  17. RAID

[Syllabus] [Lectures] [Assignments] [Tests] [Policies]


Assignment Submission: Submit your assignment on the blackboard as one zipped compressed file. Include all your code, a README file, and a Makefile. If you do not know how to do this, please contact us for help. DO NOT submit each file individually. DO NOT include the entire linux kernel (for kernel programming assignments) -- include only the files you change. DO NOT include object files (.o) or any executable files.

[Syllabus] [Lectures] [Assignments] [Tests] [Policies]

Tests and Solutions

[Syllabus] [Lectures] [Assignments] [Tests] [Policies]