------------------ Introduction ------------
Lecture 1 (1/20): Introduction
Lecture 2 (1/22): Overview of Computer Organization
Lecture 3 (1/27): Introduction to Processes and Address Spaces
Lecture 4 (1/29): Hardware Protection and system calls, interrupt handling;
------------------ Synchronization and Concurrency ------------
Lecture 5 (2/3): Java for C++ Programmers;
Lecture 6 (2/5): The synchronization problem and simple solutions;
Lecture 7 (2/10): Semaphores and their implementations;
Lecture 8 (2/12): Semaphore examples;
2/17: Project 1 due.
Lecture 9 (2/17): More semaphore examples;
Lecture 10 (2/19): Monitors, monitor examples;
Lecture 11 (2/24): Deadlocks and solutions;
------------------ Process Scheduling -------------------------
Lecture 12 (2/26): CPU scheduling in batch and time-share systems;
Lecture 13 (3/3): Real-time scheduling disciplines, priority inverstion and solutions;
------------------ Memory Managment ---------------------------
Lecture 14 (3/5): Memory management: allocation and protection, secondary storage, address space revisited;
3/17: Project 2 due.
Lecture 15 (3/17): Segmentation and paging;
3/19: Midterm Exam.
Lecture 16 (3/24): Page table organizations, TLB;
Lecture 17 (3/26): Demand paging, page fault services;
Lecture 18 (3/31): Page replacement algorithms; Memory allocation in multitasking environments;
4/2: Project 3 due.
------------------ File System --------------------------------
Lecture 20 (4/2): I/O devices and disks;
Lecture 21 (4/7): File systems and disk management; Example implementation: FAT;
Lecture 22 (4/9): Disk access characteristics, block allocation, and scheduling;
Lecture 23 (4/14): UNIX file system implementation; directory structures;
Lecture 24 (4/16): File system interfaces, memory mapped files, file caching
implementation;
4/16: Project 4 due.
---------------- Communciation and Distributed System ----------
Lecture 25 (4/21): Inter-Process communications: message passing and shared memory;
Lecture 26 (4/23): Multi-processor operating systems;
Lecture 27 (4/28): Overview of networking protocols and implementation;
Lecture 28 (4/30): Distributed system primer;
---------------- Security --------------------------------------
Lecture 29 (5/5): Operating system security overview;
Lecture 30 (5/7): UNIX security problems;
5/7: Project 5 due.