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