| Date | Lecture/Lab Topics | Assigned Reading | Quiz | Slides |
|---|---|---|---|---|
| T 1/18 |
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 |
quiz 1 | lecture 1 |
| R 1/20 |
1C What is an Operating System 2A OS Services, Layers, Mechanisms 2B Service Interfaces |
Software Interfaces |
quiz 2 | lecture 2 |
| F 1/21 | P0: Linux/C programing |
Project 0 order Embedded System |
(due Mon 1/24) | |
| T 1/25 |
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 1/27 |
2C Standards and Stability 3E Asynchronous Exceptions & Events 3U User-mode Exceptions 3Z (Stacks and Linkage Conventions) 3Y (Sharable/Dynamically Loadable Code) |
Interface Stability Linking and Libraries (s.b. review) Linkage Conventions (s.b. review) signal(2) kill(2) |
quiz 4 | lecture 4 |
| F 1/28 | P1A: I/O and IPC |
Project 1A |
(due Mon 1/31) | |
| T 2/1 |
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 2/3 |
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 2/4 | P1B: Compressed communication |
Project 1B |
(due Mon 2/7) | |
| T 2/8 |
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 2/10 |
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 2/11 | P4A: Embedded system bringup |
Project 4A |
(due Mon 2/14) | |
| T 2/15 |
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 2/17 |
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 2/18 | P2A: Mutual Exclusion |
Project 2A |
(due Mon 2/21) | |
| T 2/22 |
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 2/24 |
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 2/25 | P2B: Complex Critical Sections |
Project 2B |
(due Mon 2/28) | |
| T 3/1 |
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 3/3 |
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 3/4 | P4B: Embedded System I/O |
Project 4B |
(due Mon 3/07) | |
| T 3/8 |
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 |
| R 3/10 |
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 |
| F 3/11 | Mid-Term Exam | Solution | ||
| T 3/15 | SPRING BREAK | |||
| R 3/17 | SPRING BREAK | |||
| F 3/18 | SPRING BREAK | |||
| T 3/22 |
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 |
| R 3/24 |
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 |
| F 3/25 | HOLIDAY: Ceasar Chavez | |||
| T 3/29 |
11B Namespace Semantics 11E Namespace Representation |
Arpaci C39.10-15 (directories) Arpaci C40.4 (file systems - directories) |
quiz 19 | lecture 19 |
| R 3/31 |
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 |
| F 4/1 | P3A: File System Interpretation |
Project 3A |
(due Mon 4/4) | |
| T 4/5 |
11H File System Robustness 11I Check-sums 11J Log-Structured File Systems |
Arpaci C42 (crash consistency) Arpaci C43 (Logging FS) Arpaci C44 (data integrity) Arpaci appx I.6-10 (SSD) |
quiz 21 | lecture 21 |
| R 4/7 |
12A Security Concepts and Goals 12B Authentication 12C Authorization 12D Trust |
Reiher: Intro to Security Reiher: Authentication Reiher: Access Control |
quiz 22 | lecture 22 |
| F 4/8 | P3B: File System Analysis |
Project 3B |
(due Mon 4/11) | |
| T 4/12 |
13A Distributed Systems: Goals/Challenges 13B Distributed Systems: Communication 13D Distributed Systems: Synchronization 13C Distributed Systems: Security |
Arpaci C47 (dist systems) Goals and Challenges RESTful interfaces Leases |
quiz 23 | lecture 23 |
| R 4/14 |
12E At-Rest Encryption 13G Encryption 13H Public Key encryption 13I Secure Sessions |
Reiher: Cryptography Reiher: Distributed Systems Security SSL |
quiz 24 | lecture 24 |
| F 4/15 | P4C: Secure Communication |
Project 4C |
(due Mon 4/25) | |
| T 4/19 |
14A Remote Data: Architectures 14B Remote Data: Security |
Arpaci C48 (NFS) Authentication Services |
quiz 25 | lecture 25 |
| R 4/21 |
14C Remote Data : Robustness 14D Remote Data: Performance 14E Remote Data: Consistency |
Arpaci C49 (AFS) ACID semantics |
quiz 26 | lecture 26 |
| F 4/22 | REVIEW | |||
| T 4/26 |
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 4/28 |
15D Loosely Coupled Systems 15E Cloud Models 15H Eventual Consistency 99 Wrap-Up |
Eventual Consistency Horizontally Scaled Systems |
quiz 28 | lecture 28 |
| F 4/29 | REVIEW | |||
| F 05/13 | Final Exam (14:00-17:00) | solns: part i solns: part ii |
| date | topic | team |
| 4/8 | Kernel vulnerabilities | Williams |
| 4/12 | PUB/SUB | Hirsch |
| 4/19 | Encrypted Communication | Perez, Xue |
| 4/26 | TLA+ (protocol validation) | Santichaivekin, Schultz |
| 4/28 | Load Balancing | Nunoo, Somji |
There is a (Sakai) quiz that must be completed prior to each lecture session. These are timed (5 mintues) closed book quizzes intended to be non-difficult if you have done the reading. Most questions can be answered in a one-digit number of words. I am not looking for essay answers or even complete sentences ... just enough to show that you remember a few details from the reading.