Lecture recordings will be available on Canvas a couple of days after the class.
. We will have quizzes on them during the
class. Assigned reading can be usually done after the class,
unless otherwise indicated.
Date |
Videos to watch and lecture slides |
Reading assignments |
Programming assignments |
9/5 |
Technology
trends, or why operating systems are NOT a solved
problem
Course
Structure
|
Chapter 2 in the OSTEP book.
Chapter 0, 3 in the xv6 book.
|
|
9/10 |
Introduction
Bootstrapping. What
does it mean to be the kernel?
How does an OS boot?
Read before class:
Overview
of virtual memory
and address
translation.
|
Chapter 1 in the xv6 book.
Short section on booting in The Little Book About OS Development.
Optional:
MIPS
R3000 programmer manual may be helpful in understanding how the
OS must interact with the hardware during boot and after.
|
|
9/12 |
Continue the bootstrapping exercise.
|
Review the readings from previous class.
|
|
9/17
|
Synchronization
Watch before class:
Overview of synchronization
Synchronization types
All videos are produced by Margo Seltzer
|
[OSTEP] Concurrency: An Introduction
|
Assignment 1 due on Monday, September 16 at 11:59pm PT.
|
9/19
|
Semaphore implementation exercise
Watch before class:
Synchronization implementation
All videos are produced by Margo Seltzer
|
The volatile keyword explained
Condition variables
Mesa semantics
|
|
9/24
|
Synchronization patterns
|
[OSTEP] Concurrent data structures
[OSTEP] Condition variables and bounded buffer problem
Mesa semantics
Treacherous shared counters
You don't know jack about shared variables or memory models -- Data races are evil.
Pointer tutorials:
The Wikipedia Tutorial
The Dave Marshall Tutorial
|
Assignment 2 due on Monday, 9/26 at 11:59pm PT.
|
9/26
|
Test-and-set locks in-depth
|
The Art of Multiprocessor Programming, Chapter 9. (sections 9.2-9.5.1 cover the material we studied in class) -- authenticate with your ECE account credentials.
|
|
10/1 |
TBD
|
|
|
10/3
|
Scheduling
Watch before class:
Computer Architecture Primer
|
[OSTEP] Scheduling
|
|
10/8
|
Advanced scheduling
A Decade of Wasted Cores
|
[OSTEP] Lottery scheduling
A Decade of Wasted Cores
|
Assignment 3 due on Monday, 10/7 at 11:59pm PT.
|
10/10
|
Implementing system calls
Watch before class:
Context switching
Processes and threads
Process components
Read before class:
OS161 man pages for the system calls you are implementing in A4.
|
File descriptors in Unix
Chapter 2 in the xv6 book
|
|
10/15
|
Processes and threads
Processes and file descriptors
Watch before class:
Process management
Fork and exec
|
|
|
10/17
|
Process creation: fork() and shared file objects
fork.c, pipes.c, pipes2.c, pipes-exec.c
Processes: exec(), exec.c,
Processes: waitpid/exit
Watch before class:
Process management
Fork and exec
|
[OSTEP] Introduction of the Unix process API (fork/exec, etc.)
|
|
10/22
|
Process creation: fork() and shared file objects
fork.c, pipes.c, pipes2.c, pipes-exec.c
Processes: exec(), exec.c,
Processes: waitpid/exit
Watch before class:
Process management
Fork and exec
|
OS161 man pages for the system calls in A5.
|
Assignment 4 due on Monday, 10/21 at 11:59pm PT.
|
10/24
|
Guest Lecture. TBD.
|
|
|
10/29
|
Virtual memory (Intro)
Paging
Watch before class:
Intro to Virtual Memory
Translation Lookaside Buffer (TLB)
Virtual memory on x86
Intro to paging
|
[OSTEP] Address spaces
[OSTEP] Memory API
[OSTEP] Address translation
|
|
10/31
|
Virtual memory (Intro)
Paging
Watch before class:
Intro to Virtual Memory
Translation Lookaside Buffer (TLB)
Virtual memory on x86
Intro to paging
|
[OSTEP] Address spaces
[OSTEP] Memory API
[OSTEP] Address translation
|
|
11/05
|
Paging to disk
Watch before class:
Continuation of paging by Margo Seltzer
|
[OSTEP] Translation lookaside buffers
[OSTEP] Free space management
MIPS MMU and TLB
[OSTEP] Introduction to Paging
[OSTEP] Advanced paging
|
|
11/07
|
Paging to disk
Watch before class:
Continuation of paging by Margo Seltzer
|
[OSTEP] Translation lookaside buffers
[OSTEP] Free space management
MIPS MMU and TLB
[OSTEP] Introduction to Paging
[OSTEP] Advanced paging
|
|
11/12
|
University break.
|
|
Assignment 5 due Monday, 11/11 at 11:59pm PT.
|
11/14
|
File systems
Watch before class:
Disks
Introduction to file systems
File system naming
FFS
File system recovery
Journaling file systems
LFS
|
[OSTEP] Hard disk drives
[OSTEP] Flash-based SSDs
[OSTEP] File system implementation
[OSTEP] Locality and the FFS
[OSTEP] Crash consistency: fsck and journaling
[OSTEP]: Log-structured File Systems
ctFS: watch the video and skim the paper:
ctFS paper at FAST'22 conference
|
|
11/19
|
File systems
Watch before class:
Disks
Introduction to file systems
File system naming
FFS
File system recovery
Journaling file systems
LFS
|
[OSTEP] Hard disk drives
[OSTEP] Flash-based SSDs
[OSTEP] File system implementation
[OSTEP] Locality and the FFS
[OSTEP] Crash consistency: fsck and journaling
[OSTEP]: Log-structured File Systems
ctFS: watch the video and skim the paper:
ctFS paper at FAST'22 conference
|
|
11/21
|
Finish file systems
|
|
|
11/26
|
TBD
|
|
|
11/28
|
TBD
|
|
|
12/03
|
Special Lecture: The Devastation of Meltdown
|
|
|
12/05
|
Guest Lecture: On Flash Translation Layer. Surbhi Palande, PhD student at UBC, formerly Microsoft Research.
|
|
Assignment 6 due Friday, 12/06 at 11:59pm PT.
|