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

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