CIS 3800

Operating Systems

Instructor: Boon Thau Loo

Course Description

This course is an introduction to the theory and practice behind modern computer operating systems. Topics will include what an operating system does, system calls and interfaces, processes and threads, concurrent programming, resource scheduling and management (of the CPU, memory, etc.), virtual memory, deadlocks, and virtualization. We will approach the subject from both a theoretical perspective (what are the abstractions and algorithms?) as well as a practical one (what are the mechanisms and how are they built?).

Optional course textbooks:

Course pre-requisites:

  • Working knowledge of the C programming language (e.g. CIS 240 level).


  • Programming projects: 60% (6% for project 0, 17% for project 1, 37% for final project)
  • Two midterm exams: midterm 1 (20%), and midterm 2 (20%)

Class participation will be graded based on regular class attendance, visibility on newsgroup, and contribution to group projects.

Tentative Schedule

Visit our Canvas website for more up-to-date information, including links to lecture notes, course resources, syllabus, etc. If you enroll in the class, you will automatically gain access to Canvas.