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:
- A.S. Tanenbaum. Modern Operating Systems (4/e). Prentice Hall (or newer editions)
- W. Richard Stevens and Stephen A. Rago. Advanced Programming in the UNIX Environment (2/e). Addison-Wesley Professional. 2005.
Course pre-requisites:
- Working knowledge of the C programming language (e.g. CIS 240 level).
Grading
- 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.