CMSC 23000 Operating Systems
Winter 2011

Lecturer: Borja Sotomayor
E-mail: borja AT cs DOT uchicago DOT edu
Office: Searle 211-A
Office hours: Open door policy (see Course Syllabus)

TA: Allan Espinosa
E-mail: aespinosa AT cs DOT uchicago DOT edu
Office: Jones 209
Office hours: TBD

Lectures: TuTh 4:00-5:20 in Ryerson 276

Quick links

Course Description

This course provides an introduction to the basic concepts and techniques used to implement operating systems. Topics include processes and threads, interprocess communication and synchronization, memory management, segmentation, paging, linking and loading, scheduling, file systems, and input/output. The course will revolve around the implementation of an x86 operating system kernel.

By the end of this course, students should be able to...

CMSC 15400 and a working knowledge of the C programming language are strict prerequisites of this course. Students who have not taken CMSC 15400 must speak with the instructor to ascertain that they meet the prerequisites for this course.

For a more detailed description of this course, please read the Course Syllabus.


This course has two suggested texts:

The lectures will not be tied to any one text in particular and all the material necessary to implement the project will be delivered in the lectures. Thus, students are not required to purchase any of the above texts (although they can be a valuable reference).