CS550 - Operating Systems - Fall 2021

Prof. Kartik Gopalan

[Syllabus] [Course Material] [Policies]

Syllabus

Class Information

Instructor: Prof. Kartik Gopalan.

Teaching Assistants:

Course Description: Advanced topics in operating systems. including process and threads, concurrency, deadlocks, race conditions, synchronization, scheduling, virtual memory, file systems, storage systems, virtualization, security, and kernel programming.

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.

Learning Objectives: In this course, you will learn classical and advanced concepts in Operating Systems. Topics include:

We will cover a mix of background material and advanced topics. Programming assignments will help you get your hands dirty with Linux kernel coding.

Prerequisites:

Textbooks:

Other Recommended Books:

Evaluation:

Grading Method:

[Syllabus] [Course Material] [Policies]

Lecture Slides and Supplemental Materials

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

[Syllabus] [Course Materials] [Policies]