CS550: Operating Systems

Spring 2017, Sections 02 and 03

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


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

We will cover a mix of background material followed by research papers in each topic. Assignments and course projects will help you get your hands dirty with Linux kernel.

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:

Time and Location:

Instructor: Kartik Gopalan, kartik@binghamton.edu
Office Hours: Mon-Wed 1:30-2:30pm in ENGB Q-17, and 5:00--5:30 in SL212 after class. Feel free to set up an appointment for other times.

Teaching Assistants:

Recommended Textbooks:

The following two textbooks are recommended. The second book is free online. You DON'T need to buy either of them.

  1. Modern Operating Systems, Andrew Tanenbaum, Prentice Hall; 4th edition
  2. Operating Systems: Three Easy Pieces
    Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
    Arpaci-Dusseau Books
    March, 2015 (Version 0.90)

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. OS and Its Three Pieces
  5. Threads
  6. Kernel Modules
  7. System Calls
  8. Concurrency - Race Conditions and Deadlocks
  9. Concurrency - Semaphores, Condition Variables, and Producer Consumer
  10. Events vs Threads : Ousterhout's talk
  11. "The UNIX time-sharing system", Dennis M. Ritchie and Ken Thompson, 1974
  12. I/O Models
  13. RAID
  14. Virtual Memory Management
  15. Memory Management and Superpages
  16. Introduction to Virtual Machines
  17. Operating-System-Level Virtualization (Containers)
  18. System Security
  19. Segmentation
  20. Live Migration of Virtual Machines
  21. Principles of System Design

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

Assignments and Labs

Assignment Submission: Submit your assignment on the blackboard as one tar-gzipped file (generated using the tar command with cvzf options). In the tar-gzipped 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]