Operating Systems Principles
Spring 2022
Lectures, Reading, Quizzes, Exams, and Projects

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

Scheduled Student Presentations

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

Quizzes

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.

(Last updated: 3/24/2022)