Last updated: May 26, 2016
| Week | Day | Date | Lecture/Lab Topics | Assigned Reading | Quiz | Slides | 
|---|---|---|---|---|---|---|
| 1 | M | 03/28 | 	1A Administrative introduction to course 1B Why study Operating Systems 1C What is an Operating System 1D Operating Systems principles  | 
	Arpaci ch 2 Saltzer ch 1-1.3(from UCLA only) Interface stability  | 
	none | lect 1 | 
| W | 03/30 | 	2A Operating System services, layers, mechanisms 2B Service interfaces and standards 2C Services and abstract resources  | 
	Saltzer ch 1.4-1.5(from UCLA only) Dynamic Loading Application Programming Interface Application Binary Interface linkage conventions libraries  | 
        Quiz 2 | lect 2 | |
| Lab | 04/01 | Project 0: Warmup | ||||
| 2 | M | 04/04 | 	3A What is a process 3B Implementing processes 3C Aynchronous exceptions and events 3D User-mode programs and exceptions  | 
	
	    Arpaci ch 3 Arpaci ch 4 Arpaci ch 5 Arpaci ch 6 kill(2) signal(2)  | 
	Quiz 3 | lect 3 | 
| W | 04/06 | 	4A Introduction to scheduling 4B Non-preemptive scheduling 4C Preemptive scheduling 4D Adaptive scheduling 9F Performance under load  | 
	Arpaci ch 7 Arpaci ch 8 real time scheduling  | 
        Quiz 4 | lect 4 | |
| Lab | 04/08 | Project 1A: I/O and IPC | ||||
| 3 | M | 04/11 | 	5A Memory management and address spaces 5B Allocation algorithms 5C Advanced allocation techniques 5D Segment Relocation 5E Garbage Collection 5F Errors and diagnostic free lists  | 
	
	    Arpaci ch 12 Arpaci ch 13 Arpaci ch 14 Arpaci ch 15 Arpaci ch 16 Arpaci ch 17  | 
	Quiz 5 | lect 5 | 
| W | 04/13 | 	6A Introduction to swapping and paging 6B Paging MMUs and Demand Paging 6C Replacement algorithms 6D Thrashing and Working Sets 6E other optimizations  | 
	Arpaci ch 18 Arpaci ch 19 Arpaci ch 21 Arpaci ch 22 working set replacement  | 
        Quiz 6 | lect 6 | |
| Lab | 04/15 | Project 1B: networking & encryption | ||||
| 4 | M | 04/18 | 	3E Threads 7A Inter-Process Communication 7B Critical Sections 7C Asynchronous Completions  | 
	
	    Inter Process Communication named pipes send(2) recv(2) mmap(2) Arpaci ch 25 Arpaci ch 26 Arpaci ch 27 user-mode threads  | 
	Quiz 7 | lect 7 | 
| W | 04/20 | 	7D Mutual Exclusion operations 7E Implementing mutual exclusion 7F Asynchronous completion operations 7G Implementing asynchronous completion  | 
	Arpaci ch 28 | 
        Quiz 8 | lect 8 | |
| F | 04/22 | Project 2A: atomic operations | ||||
| 5 | M | 04/25 | 	7H Synchronization problems 7I Semaphores 7J Object level locking 7K bottlenecks and contention  | 
	
	    Arpaci ch 29 Arpaci ch 30 Arpaci ch 31 flock(2) lockf(3)  | 
	Quiz 9 | lect 9 | 
| W | 04/27 | MIDTERM | weeks 1-5 | solns | ||
| Lab | 04/29 | Project 2B: complex critical sections | ||||
| 6 | M | 05/02 | 	8A introduction to deadlocks 8B Deadlock Avoidance 8C Deadlock Prevention 8D Related Problems 7L Higher Level Synchronization  | 
	
	    Arpaci ch 32 Deadlock Avoidance Health Monitoring/Recovery Monitors Java synchronization Java intrinsic locks  | 
	Quiz 10 | lect 10 | 
| W | 05/04 | 	9A Performance and Metrics 9B Load characterization and generation 9C Performance measurement 9D Performance analysis 9E Performance presentation  | 
	
	    Metrics and measurement Load and Stress Testing  | 
        Quiz 11 | lect 11 | |
| Lab | 05/06 | Project 2C: lock granularity and performance | ||||
| 7 | M | 05/09 | 	10A Disks 10B Low-level I/O techniques 10C Higher-level I/O techniques 10D Plug-in Driver Architectures  | 
	Arpaci ch 33-33.6 Arpaci ch 35 Device Drivers Classes and Services Arpaci ch 36 Arpaci ch 37 Arpaci ch 38 Dynamically Loadable Drivers  | 
	Quiz 12 | lect 12 | 
| W | 05/11 | 	11A File semantics 11B Namespace semantics 11C File representation 11D Free-space representation 11E Namespace representation 11F File System integration  | 
	Arpaci ch 39 File Formats Arpaci ch 40 FAT File System Object Storage(Hist, Arch) Key-Value Stores(Intro, types) FUSE(Intro)  | 
        Quiz 13 | lect 13 | |
| Lab | 05/13 | Project 3A: file system dump | ||||
| 8 | M | 05/16 | 	11G File System performance 11H File System robustness 11I Check-sums 11J Log-Structured File Systems  | 
	Arpaci ch 41 Arpaci ch 42 Arpaci ch 43* Arpaci ch 44 Arpaci appx I.6-10 Arpaci ch 45  | 
	Quiz 14 | lect 14 | 
| W | 05/18 | 	12A Operating Systems Security 12B Authenticaiton 12C Authorization 12D Trust 12E At-Rest Encryption  | 
	Saltzer 11.1-2 Saltzer 11.6 At Rest Encryption  | 
        Quiz 15 | lect 15 | |
| Lab | 05/20 | Project 3B: file system analysis | ||||
| 9 | M | 05/23 | 
  		13A Distributed Systems: Goals & Challenges 13B Distributed Systems: Communication 13C Distributed Systems: Security 13D Distributed Systems: Synchronization  | 
  	 Distributed Systems: Goals & Challenges Arpaci ch 47 Saltzer 11.3-4 RESTful interfaces Resource Leases Distributed Consensus SSL  | 
        Quiz 16 | lect 16 | 
| W | 05/25 | 
		14A Remote Data Architectures 14B Remote Data Security 14C Remote Data Robustness 14D Remote Data Performance 14E Remote Data Scalability  | 
	Arpaci ch 48 Arpaci ch 49 Kerberos ACID semantics  | 
        Quiz 17 | lect 17 | |
| Lab | 05/27 | Research Paper Embedded System Project  | 
||||
| 10 | M | 05/30 | MEMORIAL DAY | |||
| W | 06/01 | 
		15A Distributed Computing 15B Multi-Processor Systems 15C Tightly Coupled Systems 15D Loosely Coupled Systems 15E Cloud Models 3F Virtual Machines  | 
	
	    Arpaci appx B Multi-Processors Arpaci ch 10 Clustering Concepts Horizontally Scaled Systems Eventual Consistency  | 
        Quiz 18 | lect 18 | |
| Lab | 06/03 | |||||
| 11 | M | 06/06 | 11:30-14:30 FINAL EXAM 23:59: Paper/Project 4 due  | 
	part 1: weeks 6-10 part 2: ALL  | 
	solns 1 solns 2  |