CS111 Winter 2020 | News | Course Reference | Course Objectives | Schedule | Project Guide


CS111 Winter 2020
Schedule


This schedule is a work in progress and will be updated throughout the quarter; check in before each lecture for updates. In general, I'll try to keep the schedule at least a week or so ahead, so that you can anticipate where we're headed.

All assigned readings are from the Scott text. It is a good idea to skim the assigned reading before the lecture for the main ideas, attend lecture, and then to go through the assigned reading again to fill in the details that you missed, both in your initial skim of the reading and in the lecture.

Several lectures have little or no reading corresponding to them. In some cases, this is because a block of reading corresponds to more than one lecture. In other cases, the material covered in that lecture is not discussed in the textbook.

Date

Lecture Topics

Readings

Week 1

M 1/6

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

 

Lecture 1

W 1/8

OS Servies, Layers, Mechanisms
Service Interfaces
Standards and Stability
Services and Abstract Resources

Interface Stability
Software Interfaces

 

 

Lecture 2

Jon’s Slides

F 1/10


Discussion: Linux/C Programming

 

Project 0
order Edison components

 

Week 2

M 1/13

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)

 

Lecture 3

 

W 1/15

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

 

Lecture 4

F 1/17

I/O and IPC

Project 1A

Week 3

M 1/20

Martin Luther King, Jr. Holiday

 

 

W 1/22

Memory Management
Memory Allocation and Fragmentation
Allocation Algorithms

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
Virtual Memory and I/O

Arpaci C12 (intro to memory)
Arpaci C13 (address spaces)
Arpaci C14 (memory APIs)
Arpaci C17 (allocation algorithms)
Garbage Collection

 

Arpaci C15 (relocation)
Arpaci C16 (segmentation)
Arpaci C18 (paging)
Arpaci C19 (TLBs)
Arpaci C21(swapping)
Arpaci C22 (swapping policy)
Working-set replacement

 

Lecture 5

Lecture 6

F 1/24

Encrypted Communication

Project 1B

Week 4

M 1/27

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

 

Lecture 7

 

W 1/29

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)

 

Lecture 8

F 1/31

Embedded System bring-up

Project 4A

Week 5

M 2/3

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)

 

Lecture 9

W 2/5

Midterm

F 2/7

Mutual Exclusion Operations

Project 2A

·        Week 6

M 2/10

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

 

Lecture 10

 

W 2/12

Performance and Metrics
Load Characterization/Generation
Performance Measurement
Performance Analysis
Performance Presentation

Metrics and Measurment
Load and Stress Testing

F 2/14

Contention

Project 2B

Week 7

M 2/17

 Presidents’ Day Holiday

 

W 2/19

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
User-mode device 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)

 

Lecture 11

F 2/21


Edison sensors and communication

Project 4B

Week 8

M 2/24

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)

 

Lecture 12

W 2/26

File System Performance
File System Robustness
Check-sums
Log-Structured File Systems
Defragmentation

Arpaci C41 (FFS implementation)
Arpaci C42 (crash consistency)
Arpaci C43 (Logging FS)
Arpaci C44 (data integrity)
Arpaci appx I.6-10 (SSD)
Defragmentation

 

Lecture 13

F 2/28

File System Interpretation

Project 3A

Week 9

M 3/2

Operating Systems Security
Authentication
Authorization
Trust
At-Rest Encryption
Encryption

Reiher: Intro to Security
Reiher: Authentication
Reiher: Access Control
Reiher: Cryptography

 

W 3/4

Distributed Systems: Goals/Challenges
Distributed Systems: Communication
Public Key encryption

Arpaci C47 (dist systems)
Reiher: Distributed Systems Security
Goals and Challenges

RESTful interfaces

 

Lecture 14

F 3/6

File System Analysis

Project 3B

Week 10

M 3/9

Distributed Systems: Security
Distributed Systems: Synchronization
Distributed Systems: consensus
Secure Sessions
Distributed Transactions
Remote Data: Architectures

Arpaci C48 (NFS)
SSL
Leases
Distributed Consensus
Two Phase commit (through disadvantages)
Three Phase Commit (through disadvantages)

 

Lecture 15

 

W 3/11

Virtual Machines
Distributed Systems: membership
Distributed Computing
Multi-Processor Systems
Tightly Coupled Systems
Loosely Coupled Systems
Cloud Models
Distributed Middleware
Wrap-Up

Arpaci appx B(Virtual Machines)
Arpaci C10 (SMP scheduling)
Eventual Consistency
Multi-Processors
Clustering Concepts
Horizontally Scaled Systems

 

Lecture 16

F 3/13

Secure communication

Project 4C

Finals Week

W

3/18 11:30-2:30pm

Final Exam