| Date | Lecture/Lab Topics | Assigned Reading | Quiz | Slides | 
|---|---|---|---|---|
| T 4/3 | 
            Administrative Introduction Why Study OS What is an Operating System Operating Systems Principles Evolution of the OS OS Goals  | 
        
            Syllabus Arpaci C2 (intro to OS) OS Principles  | 
        none | lecture 1 | 
| R 4/5 | 
            OS Servies, Layers, Mechanisms Service Interfaces Standards and Stability Services and Abstract Resources  | 
        
            Interface Stability Software Interfaces  | 
         Quiz #2 (in CCLE)  | 
        lecture 2 | 
| F 4/6 | 
            Linux/C Programming | 
        
            Project 0 order embedded system components  | 
    ||
| T 4/10 | 
            What is a Process Process Address Space Process Operations Implementing Processes Asynchronous Exceptions & Events User-mode Programs and Exceptions Software Build Tool Chain Sharable/Dynamically Loadable Code Stacks and Linkage Conventions  | 
        
            Linking and Libraries Linkage Conventions Arpaci C3 (intro to processes) Arpaci C4 (processes) Arpaci C5 (process APIs) Arpaci C6 (process implementation) signal(2) kill(2)  | 
         Quiz #3 (in CCLE)  | 
        lecture 3 | 
| R 4/12 | 
            Execution state model Introduction to Scheduling Non-Preemptive Scheduling Preemptive Scheduling Adaptive Scheduling Scheduling and Performance Real-Time Scheduling Performance under load  | 
        
            Arpaci C7 (scheduling) Arpaci C8 (adaptive scheduling) Real-Time scheduling  | 
         Quiz #4 (in CCLE)  | 
        lecture 4 | 
| F 4/13 | 
            I/O and IPC | 
        
            Project 1A | 
    ||
| T 4/17 | 
            Memory Management Memory Allocation and Fragmentation Allocation Algorithms Advanced Allocation Techniques Errors and Diagnostic Free Lists Garbage Collection  | 
        
            Arpaci C12 (intro to memory) Arpaci C13 (address spaces) Arpaci C14 (memory APIs) Arpaci C17 (allocation algorithms) Garbage Collection  | 
         Quiz #5 (in CCLE)  | 
        lecture 5 | 
| R 4/19 | 
            Memory Compaction Swapping to 2ndary storage Dynamic Relocation Paging MMUs Demand Paging Replacement Algorithms Thrashing and Working Sets Optimizations and Advanced Techniques Paging and Segmentation  | 
        
            Arpaci C15 (relocation) Arpaci C16 (segmentation) Arpaci C18 (paging) Arpaci C19 (TLBs) Arpaci C21(swapping) Arpaci C22 (swapping policy) Working-set replacement  | 
         Quiz #6 (in CCLE)  | 
        lecture 6 | 
| F 4/20 | 
            Compressed Communication | 
        
            Project 1B | 
    ||
| T 4/24 | 
            Threads Inter-Process Communication Critical Sections  | 
        
            Introduction to IPC send(2) recv(2) named pipes mmap(2) Arpaci C25 (intro to sync) Arpaci C26 (theads & races) Arpaci C27-27.2 (thread APIs) User-mode Threads  | 
         Quiz #7 (in CCLE)  | 
        lecture 7 | 
| R 4/26 | 
            Asynchronous Completions Mutual Exclusion Implementing Mutual Exclusion Asynchronous Completion Operations Implementing Asynchronous Completion  | 
        
            Arpaci C27.3-4 (Synchronization APIs) Arpaci C28-28.3 (locking) Arpaci C28.4-9 (implementing locks) Arpaci C28.12-15 (spinning) Arpaci C30-30.1 (condition vars)  | 
         Quiz #8 (in CCLE)  | 
        lecture 8 | 
| F 4/27 | 
            Embedded System bring-up | 
        
            Project 4A | 
    ||
| T 5/1 | 
            Semaphores Producer Consumer Problems Object Level Locking Bottlenecks and Contention  | 
        
            Arpaci C29 (protecting data) Arpaci C30.2-3 (producer/consumer prob) Arpaci C31 (semaphores) flock(2) lockf(3)  | 
         Quiz #9 (in CCLE)  | 
        lecture 9 | 
| R 5/3 | MIDTERM EXAM | |||
| F 5/4 | 
            Mutual Exclusion Operations | 
        
            Project 2A | 
    ||
| T 5/8 | 
            Higher Level Synchronization Lock-Free Operations Introduction to Deadlocks Deadlock Avoidance Deadlock Prevention Detection and Recovery  | 
        
            Arpaci C32-32.2 (concurency probs) Arpaci C32.3 (deadlock) Deadlock Avoidance Health Monitoring Java synchronization Java intrinsic locks Monitors  | 
         Quiz #10 (in CCLE)  | 
        lecture 10 | 
| R 5/10 | 
            Performance and Metrics Load Characterization/Generation Performance Measurement Performance Analysis Performance Presentation  | 
        
            Metrics and Measurment Load and Stress Testing  | 
         Quiz #11 (in CCLE)  | 
        lecture 11 | 
| F 5/11 | 
            Contention | 
        
            Project 2B | 
    ||
| T 5/15 | 
            I/O Architectures I/O Mechanisms Disks Low Level I/O techniques High Level I/O techniques Polled/non-Blocking I/O Asynchronous I/O  | 
        
            Arpaci C33-33.6 (events) Arpaci C35 (intro to storage) Arpaci C36 (devices) Arpaci C37 (disks) Arpaci C38 (RAID) poll(2) select(2) sigaction(2)  | 
         Quiz #12 (in CCLE)  | 
        lecture 12 | 
| R 5/17 | 
            File Semantics Namespace Semantics File Representation Free-Space Representation Namespace Representation FIle System Integration Disk Partitioning and Volumes  | 
        
            Arpaci C39 (files) Arpaci C40 (file systems) File types Key-Value Stores(Intro, types) Object Storage(Hist, Arch) FAT File System FUSE(Intro)  | 
         Quiz #13 (in CCLE)  | 
        lecture 13 | 
| F 5/18 | 
            Sensors and communication | 
        
            Project 4B | 
    ||
| T 5/22 | 
            File System Performance File System Robustness Check-sums Log-Structured File Systems  | 
        
            Arpaci C41 (FFS implementation) Arpaci C42 (crash consistency) Arpaci C43 (Logging FS) Arpaci C44 (SSD) Arpaci C45 (data integrity)  | 
         Quiz #14 (in CCLE)  | 
        lecture 14 | 
| R 5/24 | 
            Operating Systems Security Authentication Authorization Trust At-Rest Encryption Encryption  | 
        
            Reiher: Intro to Security Reiher: Authentication Reiher: Access Control Reiher: Cryptography  | 
         Quiz #15 (in CCLE)  | 
        lecture 15 | 
| F 5/25 | 
            File System Interpretation | 
        
            Project 3A | 
    ||
| T 5/29 | 
            Distributed Systems: Goals/Challenges Distributed Systems: Communication Public Key encryption  | 
        
            Arpaci C47 (dist systems) Reiher: Distributed Systems Security Goals and Challenges RESTful interfaces  | 
         Quiz #16 (in CCLE)  | 
        lecture 16 | 
| R 5/31 | 
            Distributed Systems: Security Distributed Systems: Synchronization Distributed Systems: consensus Distributed Transactions Remote Data: Architectures Remote Data: Security  | 
        
            Arpaci C48 (NFS) Leases Distributed Consensus Two Phase commit (through disadvantages) Three Phase Commit (through disadvantages) Authentication Services  | 
         Quiz #17 (in CCLE)  | 
        lecture 17 | 
| F 6/1 | 
            File System Analysis | 
        
            Project 3B | 
    ||
| T 6/5 | 
            Remote Data : Robustness Remote Data: Performance Remote Data: Consistency Distributed Systems: Scalability Distributed Computing  | 
        
            Arpaci C49 (AFS) ACID semantics  | 
         Quiz #18 (in CCLE)  | 
        lecture 18 | 
| R 6/7 | 
            Multi-Processor Systems Tightly Coupled Systems Loosely Coupled Systems Cloud Models Distributed Middleware Wrap-Up  | 
        
            Arpaci C10 (SMP scheduling) Eventual Consistency Multi-Processors Clustering Concepts Horizontally Scaled Systems  | 
         Quiz #19 (in CCLE)  | 
        lecture 19 | 
| F 6/8 | 
            Secure communication | 
        
            Project 4C | 
    ||
| W 6/13 | Final Exam (08:00-11:00) | 
Last updated: 3/20/2018