Instructor: Boon Thau
Room: Wu and Chen Auditorium.
Time: Tuesday and Thursday 1:30-3pm.
Office hours: Tuesday and Thursday 3-3:30pm (605 Levine).
Newsgroup: We will be using Piazza for course-related discussions. Sign up here.
TA office hours are listed here. All office hours will be held in the Moore 100 labs.
This course is an introduction to the theory and practice behind modern computer operating systems. Topics will include what an operating system does (and doesn't) do, system calls and interfaces, processes, concurrent programming, resource scheduling and management (of the CPU, memory, etc.), virtual memory, deadlocks, distributed systems and algorithms, networked computing and programming, and security. 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?).
Class participation will be graded based on regular class attendence, visibility on newsgroup, and contribution to group projects.
Visit our Piazza website for more up-to-date information, including links to lecture notes, course resources, etc.
|Aug 29||Introduction||Chapter 1||Project 0 (due Sept 16)|
|Sept 3||Processes and system calls;
Unix system calls and process management
|Unix "man" pages for:
read(2), write(2), fork(2), execve(2),
execl(3), wait(2), exit(2)
|Sept 5||Processes and threads||Chapter 2.1-2.2.|
|Sept 10||Concurrent programming and IPC||Chapter 2.3, 2.5|
|Sept 12||Synchronization mechanisms and mutual exclusion|
|Sept 17||Interprocess communication and synchronization||Project 1 (milestone Oct 1, due Oct 14)|
|Sept 19||Scheduling||Chapter 2.4|
|Sept 24||Scheduling (continue)||Chapter 2.4||Homework 0 (due Oct 4)|
|Sept 26||Resources and deadlocks||Chapter 6|
|Oct 1||Memory Management||Chapter 3.1-3.3|
|Oct 3||Exam review, Virtual memory||Chapter 3.1-3.3|
|Oct 8||Midterm 0||Cover all material from Aug 29 to Oct 3|
|Oct 17||TLBs, Page replacement,
Final project TA-led discussion
|Final project (milestone Nov 14/15, due Dec 4)|
|Oct 22||Final project TA-led discussion|
|Oct 24||Page replacement algorithms; thrashing||Chapter 3.4|
|Oct 29||I/O and devices||Chapter 5|
|Oct 31||Disks, terminals and networks||Chapter 5|
|Nov 5||File systems||Chapter 4|
|Nov 7||File Systems (continue)|
|Nov 12||Remote Procedure Calls, communication protocols|
|Nov 14||Network programming (TCP/IP stack and sockets), Distributed File Systems||Homework 1 (due Nov 22)|
|Nov 19||Advanced topics (distributed systems)|
|Nov 21||Advanced topics (distributed systems)|
|Nov 26||Advanced topics (distributed systems)|
|Dec 3||Final project demo discussion|
|Dec 5||Final project demo|
|Dec 10||Midterm 1||Covers all material from Oct 15 - Nov 26|