| Date | Lecture/Lab Topics | Assigned Reading | Other | Slides |
|---|---|---|---|---|
| T 8/29 |
1A Administrative Introduction 1B Why Study OS 1D Operating Systems Principles 1E Evolution of Operating Systems |
Syllabus Student Presentations Arpaci C2 (intro to OS) OS Principles |
lecture 1 | |
| R 8/31 |
1C What is an Operating System 2A OS Services, Layers, Mechanisms 2B Service Interfaces |
Software Interfaces |
quiz 2 | lecture 2 |
| F 9/1 | P0: Linux/C programing |
Project 0 order Embedded System |
(due Tue midnight 9/5) | |
| T 9/5 |
2D Services and Abstract Resources 3A What is a Process 3B Process Address Space 3C Process Operations 3D Implementing Processes |
Arpaci C3 (intro to processes) Arpaci C4 (processes) Arpaci C5 (process APIs) Arpaci C6 (process implementation) |
quiz 3 | lecture 3 |
| R 9/7 |
2C Standards and Stability 3X Software Build Tool Chain 3Y Sharable/Dynamically Loadable Code 3Z (Stacks and Linkage Conventions) 3E (Asynchronous Exceptions & Events) 3U (User-mode Exceptions) |
Interface Stability Linking and Libraries supp: Bryant & O'Hallaron C7 (Linking) Linkage Conventions (s.b. review) supp: Bryant & Ohallaron 8.1 (Exceptions) signal(2) (s.b. review) kill(2) (s.b. review) supp: Bryant & O'Hallaron 8.5 (Signals) |
quiz 4 | lecture 4 |
| F 9/8 | P1A: I/O and IPC |
Project 1A |
(due Mon midnight 9/11) | |
| T 9/12 |
4A Introduction to Scheduling 4B Non-Preemptive Scheduling 4C Preemptive Scheduling 4D Adaptive Scheduling 4E Scheduling and Performance 4F Real-Time Scheduling |
Arpaci C7 (scheduling) Arpaci C8 (adaptive scheduling) Real-Time scheduling |
quiz 5 | lecture 5 |
| R 9/14 |
5A Memory Management 5B Memory Allocation and Fragmentation 5C Allocation Algorithms 5G Errors and Diagnostic Free Lists 5F Garbage Collection |
Arpaci C12 (intro to memory) Arpaci C13 (address spaces) Arpaci C14 (memory APIs) Arpaci C17 (allocation algorithms) Garbage Collection |
quiz 6 | lecture 6 |
| F 9/15 | P1B: Compressed communication |
Project 1B |
(due Mon midnight 9/18) | |
| T 9/19 |
5D Advanced Allocation Techniques 5H Memory Compaction 3F Execution state model 6A Swapping to 2ndary storage 5E Dynamic (Segment) Relocation 6B Paging MMUs |
Arpaci C15 (relocation) Arpaci C16 (segmentation) Arpaci C18 (paging) |
quiz 7 | lecture 7 |
| R 9/21 |
6C Demand Paging 6D Replacement Algorithms 6E Thrashing and Working Sets 6F Optimizations and Advanced Techniques 6H Paging and Segmentation |
Arpaci C19 (TLBs) Arpaci C21(swapping) Arpaci C22 (swapping policy) Working-set replacement |
quiz 8 | lecture 8 |
| F 9/22 | P4A: Embedded system bringup |
Project 4A |
(due Mon midnight 9/25) | |
| T 9/26 |
7A Inter-Process Communication 3T Threads |
Introduction to IPC send(2) recv(2) named pipes mmap(2) Arpaci C27-27.2 (thread APIs) User-mode Threads |
quiz 9 | lecture 9 |
| R 9/28 |
7B Critical Sections and Atomicity 7D Mutual Exclusion 7E Implementing Mutual Exclusion |
Arpaci C25 (intro to sync) Arpaci C26 (theads & races) Arpaci C27.3 (locking APIs) Arpaci C28-28.3 (locking) Arpaci C28.4-9 (implementing locks) |
quiz 10 | lecture 10 |
| F 9/29 | P2A: Mutual Exclusion |
Project 2A |
(due Mon midnight 10/2) | |
| T 10/3 |
7J Object Level Locking 7K Bottlenecks and Contention 7M Lock-Free Operations |
Arpaci C29 (protecting data) Arpaci C31.5 (read/write locks) Arpaci C32-32.2 (concurency probs) flock(2) lockf(3) |
quiz 11 | lecture 11 |
| R 10/5 |
9A Performance Principles and Metrics 9B Load Characterization/Generation 9C Performance Measurement 9D Performance Analysis |
Measuring OS Performance Load and Stress Testing |
quiz 12 | lecture 12 |
| F 10/6 | P2B: Complex Critical Sections |
Project 2B |
(due Fri midnight 10/13) | |
| T 10/10 |
7C Asynchronous Completions 7F Asynchronous Completion Operations 7G Implementing Asynchronous Completion |
Arpaci C27.4 (Condition Variables) Arpaci C28.12-15 (spinning) Arpaci C30-30.1 (condition vars) |
quiz 13 | lecture 13 |
| R 10/12 |
7H Semaphores 7I Producer Consumer Problems 7L Higher Level Synchronization |
Arpaci C30.2-3 (producer/consumer prob) Arpaci C31.1-4 (semaphores) Java synchronization Java intrinsic locks Monitors (intro, mutex, cond vars) |
quiz 14 | lecture 14 |
| F 10/13 | P2B: Complex Critical Sections (contd) |
Project 2B |
(due Fri midnight 10/13) | |
| T 10/17 | SPRING BREAK | |||
| R 10/19 |
8A Introduction to Deadlocks 8B Deadlock Avoidance 8C Deadlock Prevention 8D Detection and Recovery 8E Priority Inversion |
Arpaci C31.6 (Dining Philosophers) Arpaci C32.3 (deadlock) Deadlock Avoidance Health Monitoring Priority Inversion |
quiz 15 | lecture 15 |
| F 10/20 | Mid-Term Exam | Solutions | ||
| T 10/24 |
10A I/O Architectures 10B I/O Mechanisms 10C Disk I/O |
Arpaci C35 (intro to storage) Arpaci C36 (devices) Arpaci C37 (disks) |
quiz 16 | lecture 16 |
| R 10/26 |
10D Efficient I/O Operations 10E RAID Performance & Reliability 10I Polled/non-Blocking I/O 10J User-mode Asynchronous I/O 10U User-mode Device Drivers |
Arpaci C33-33.6 (events) Arpaci C38 (RAID) poll(2) select(2) sigaction(2) |
quiz 17 | lecture 17 |
| F 10/27 | P4B: Embedded System I/O |
Project 4B |
(due Mon midnight 10/30) | |
| T 10/31 |
11A File Semantics 11C File Representation 11D Free-Space Representation |
Arpaci C39.1-10 (files) Arpaci C40.1-3,6-8 (file systems) Arpaci C40.5 (file systems - free space) File types Key-Value Stores(Intro, types) Object Storage(Intro, Arch) FAT File System |
quiz 18 | lecture 18 |
| R 11/2 |
11B Namespace Semantics 11E Namespace Representation |
Arpaci C39.11-18 (directories) Arpaci C40.4 (file systems - directories) |
quiz 19 | lecture 19 |
| F 11/3 | P3A: File System Interpretation |
Project 3A |
(due Mon midnight 11/06) | |
| T 11/7 |
11F File System Integration 11G File System Performance 11K File System Defragmentation |
Arpaci C41 (FFS implementation) FUSE (user mode) file systems Defragmentation |
quiz 20 | lecture 20 |
| R 11/9 |
11H File System Robustness 11I Check-sums 11J Log-Structured File Systems |
Arpaci C42 (crash consistency) Arpaci C43 (Logging FS) Arpaci C44 (Flash SSDs) Arpaci C45 (data integrity) |
quiz 21 | lecture 21 |
| F 11/10 | P3B: File System Analysis |
Project 3B |
(due Mon midnight 11/13) | |
| T 11/14 |
12A Security Concepts and Goals 12B Authentication 12C Authorization 12D Trust |
Arpaci C53: (Intro to Security) Arpaci C54 (Authentication) Arpaci C55 (Access Control) |
quiz 22 | lecture 22 |
| R 11/16 |
13A Distributed Systems: Goals/Challenges 13B Distributed Systems: Communication 13D Distributed Systems: Synchronization 13C Distributed Systems: Security |
Arpaci C48 (dist systems) Goals and Challenges RESTful interfaces Leases |
quiz 23 | lecture 23 |
| F 11/17 | P4C: Secure Communication |
Project 4C |
(due Mon midnight 12/04) | |
| T 11/21 |
12E At-Rest Encryption 13G Encryption 13H Public Key encryption 13I Secure Sessions |
Arpaci C56 (Cryptography) Arpaci C57 (Distributed Systems Security) SSL |
quiz 24 | lecture 24 |
| R 11/23 | THANKSGIVING BREAK | |||
| F 11/24 | THANKSGIVING BREAK | |||
| T 11/28 |
14A Remote Data: Architectures 14B Remote Data: Security |
Arpaci C49 (NFS) Authentication Services |
quiz 25 | lecture 25 |
| R 11/30 |
14C Remote Data : Robustness 14D Remote Data: Performance 14E Remote Data: Consistency |
Arpaci C50 (AFS) ACID semantics |
quiz 26 | lecture 26 |
| F 12/1 | P4C: Secure Communication (contd) |
Project 4C |
(due Mon midnight 12/04) | |
| T 12/5 |
14F Distributed Systems: Scalability 15A Distributed Computing 15B Multi-Processor Systems 15C Tightly Coupled Systems 13E Distributed Systems: consensus 13F Distributed Systems: membership |
Arpaci C10 (SMP scheduling) Distributed Consensus Multi-Processors Clustering Concepts |
quiz 27 | lecture 27 |
| R 12/7 |
15D Loosely Coupled Systems 15E Cloud Models 15H Eventual Consistency 99 Wrap-Up |
Eventual Consistency Horizontally Scaled Systems |
quiz 28 | lecture 28 |
| F 12/8 | REVIEW | |||
| R 12/14 | Final Exam (14:00-17:00) (Part I) (Part II) | Solutions (I) Solutions (II) |
| date | topic | team | |
| 10/24 | Embedded I/O | Lameyer, Lumala | |
| 10/26 | Device Drivers | Terwilliger | |
| 11/14 | Security | Dasari, Yao | |
| 11/16 | Distributed Systems | Rak, Lu | |
| 11/21 | Encryption | Herrera, Chen | |
| 11/28 | Distributed FS | Wojnicki | |
| 11/30 | Andrew DFS | Klein, Weiss | |
| 12/05 | 2/3-Phase Commits | Mao, Lam | |
| 12/07 | Horizontal Scalability | Asmara, Semere | |
|   |   |   |
There is an (on-line) quiz that must be completed prior to each lecture session. These are timed (~10 mintues) closed book quizzes intended to be non-difficult if you have done the reading ... but perhaps confusing if you haven't. Most questions are multiple-choice or fill-in-the-blank.