Princeton University
Computer Science Department

Computer Science 318
Operating Systems

Jaswinder P. Singh

Fall 2019

General Information | Schedule | Projects | Policies

Course Summary

An introduction to operating systems. Emphasis is on the fundamentals of how to design and implement an operating system. Topics include operating system structure, processes, threads, synchronizations, concurrent programming, interprocess communications, virtual memory, I/O device management, and file systems.

Administrative Information


Monday & Wednesday, 11:00am - 12:20pm, Computer Science Building 104


Monday, 7:30pm - 8:20pm, Computer Science Building 104

Tuesday, 7:30pm - 8:20pm, Computer Science Building 105


Jaswinder P. Singh, Computer Science Building 324, Phone: 8-5329, Email:

Office Hours: Monday, 1:30pm - 3:00pm

Undergraduate Coordinator:

Colleen Kenny-McGuinley, Computer Science Building 210, Phone: 8-1746, Email:

Graduate Teaching Assistants:

Name Email Room Office hours
James Heppenstall Friend 010 Wednesday, 5:00pm - 7:00pm
Haochen Li Friend 010 Thursday, 3:00pm - 5:00pm
Samuel Ginzburg CS 003 Monday, 3:00pm - 5:00pm
Ziyang Xu Friend 010 Tuesday, 4:00pm - 6:00pm

Undergraduate Teaching Assistants:

Name Email Room Office hours
Jackson Neus Friend 010 Friday, 1:00pm - 3:00pm
Lucas Salvador Friend 010 Saturday, 2:00pm - 4:00pm
Reilly Bova Friend 010 Sunday, 3:00pm - 5:00pm


COS 217 & 226 or instructor's permission.


Andrew S. Tanenbaum and Herbert Bos, Modern Operating Systems, 4th edition, Prentice Hall, 2014.

Course Reserves and Online Materials

Frank Van Gilluwe, The Undocumented PC : A Programmer's Guide to I/O, CPUs, and Fixed Memory Areas. On reserve in Engineering Library.

Tom Shanley, Protected Mode Software Architecture / MindShare, Inc. On reserve in Engineering Library.

IA-32 Intel Architecture Software Developer's Manual, Volume 3: System Programming Guide.


The main venue for course announcements and questions will be Piazza. Enroll here.

All students need to enable their UNIX accounts. Instructions can be found here.