CS 481: Computer Operating Systems, Spring 2012

The syllabus is here.

Final grades are posted here.

The attendance sheet is here. Email me for your randomly-chosen 5-digit ID for this class.

Lab 2 is here, and the makeup lab for Lab 1 is here.

Mid-semester grades are posted here.

The calendar with the reading schedule and some other info is here as a Google calendar, and is also available here as a plain text file.

The notes I use for lectures and some of the C code and such is available here,

Lab 1 is here.

You can joing the mailing list by going here. The optional chat mailing list that you're all welcome to post to is here.

You can watch the videos for the class by going here and clicking on "Click here for Video-on-Demand".

The two required textbooks are http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP000141.html and http://shop.oreilly.com/product/9780596005658.do.

I'll be posting info about the two mailing lists and the Google calendar here soon.

The course will cover the basics of operating systems, including processes, threads, thread and process management, scheduling, synchronization, virtual memory, memory management, process communication and signals, I/O, UNIX security mechanisms, and file systems. Concurrency will be a major theme of the lectures and lab assignments, and we'll focus primarily on the Linux kernel but will also discuss other operating systems.

CS 341 Computer Organization and Design is a prerequisite for CS 481, so I'll assume you already know about system calls, page tables, the memory hierarchy, etc.

The class will be heavily based on labs, so you should be comfortable with C programming before the beginning of the semester. Specifically, we'll be implementing our own tracing tool for the Linux kernel that will track synchronization in different parts of the kernel.