CS550 (Sections 02 and 03) - Operating Systems

Prof. Kartik Gopalan

[Syllabus] [Lectures] [Tests and Assignments] [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 -- 6:05PM
Location: Update on 03/13/20: Classes are fully online for rest of the semester.
Click this Zoom Meeting link to join the class during class times: https://binghamton.zoom.us/j/217122885

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: (Revised upon switching to online instruction)

Instructor: Kartik Gopalan.
Instructor Office Hours: MW 6:05PM-7:00PM. Online via Zoom.https://binghamton.zoom.us/j/217122885

Teaching Assistants: Spoorti Doddamani and Yongheng Li
TA Office Hours: Office hours will be held online using Zoom. Click on the following link: https://binghamton.zoom.us/j/217122885

Contact email oscourse@binghamton.edu : Please use this address to reach both the intructor and the TAs. One of us will respond to you.


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] [Tests and Assignments] [Policies]

Lecture Slides

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

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

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

Tests and Assignments

Update on Mar 16 2020: Due to COVID-19 related changes, the course grading has been modified as follows.

Assignment Submission: Submit your assignment on mycourses.binghamton.edu 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] [Tests and Assignments] [Policies]