Instructor: Boon Thau
Loo
Room: Moore 216.
Time: Tuesday and Thursday 1:30-3pm.
Office hours: Wed 2-3pm (605 Levine).
Newsgroup: We will be using Piazza for course-related discussions. Sign up here.
Teaching assistants:
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?).
Course textbook:
Course pre-requisites:
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.
| Date | Topic | Reading | Remarks |
|---|---|---|---|
| Sept 6 | Introduction | Chapter 1 | Project 0 (due Sept 17) |
| Sept 11 | 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 13 | Processes and threads | Chapter 2.1-2.2. | |
| Sept 18 | Concurrent programming and IPC | Chapter 2.3, 2.5 | Project 1 (due Oct 12) token-shell.tgz (gzip'ed tarball) |
| Sept 20 | Synchronization mechanisms and mutual exclusion | ||
| Sept 25 | Interprocess communication and synchronization | ||
| Sept 27 | Scheduling | Chapter 2.4 | Homework 0 (due Oct 5) |
| Oct 2 | Scheduling (continue) | Chapter 2.4 | |
| Oct 4 | Resources and deadlocks | Chapter 6 | |
| Oct 9 | Memory Management | Chapter 3.1-3.3 | |
| Oct 11 | Midterm review, Virtual memory | Chapter 3.1-3.3 | |
| Oct 16 | Midterm 0 | ||
| Oct 18 | Buffer | ||
| Oct 25 | TLBs, Page replacement,
Project 2 TA-led discussion |
Project 2 (milestone Nov 15/16, due Nov 28) | |
| Oct 30 | Project 2 TA-led discussion | ||
| Nov 1 | Page replacement algorithms; thrashing | Chapter 3.4 | |
| Nov 6 | I/O and devices | Chapter 5 | |
| Nov 8 | Disks, terminals and networks | Chapter 5 | |
| Nov 13 | File systems | Chapter 4 | |
| Nov 15 | File Systems (continue) | ||
| Nov 20 | Remote Procedure Calls, communication protocols | ||
| Nov 27 | Network programming (TCP/IP stack and sockets), Distributed File Systems | ||
| Nov 29 | Project 2 demo discussion | TA-led discussion | |
| Nov 30 | Project 2 demo | Homework 1 (due Dec 4) | |
| Dec 4 | Midterm review | ||
| Dec 6 | Midterm 1 |