This schedule is tentative more than two weeks in advance.

Textbook chapters that should cover similar material are given from Anderson and Dahlin, Operating Systems: Principles and Practice, Second Edition, our recommended textbook; from Arpaci-Dusseau, Operating Systems: Three Easy Pieces, which is freely and legally available online. (I've tried to keep the readings up-to-date as I move topics around in the schedule, but I may not always have succeeded.)

DateTopicAssignment
Week 1
Thu 20 Jan

What are OSes? / Logistics / Processes

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 1.1-2.6, 3.5
Arpaci-Dusseau: 3, 4, 6
  • Logistics
  • What is an operating system
  • Dual-mode operation; protection; exceptions
  • process VMs
  • Process = thread + address space
  • xv6 generally (12:30pm)
Fri 21 Jan
Week 2
Tue 25 Jan

Exceptions / Context Switching

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 2.1-6; (4.4)
Arpaci-Dusseau: 3, 4, 6
  • xv6 generally (3:30pm)
  • System calls in xv6
  • Other exception handling
  • Context switches generally
xv6 introduction released
Thu 27 Jan

Context Switching /The Unix API 1

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 3.5, 2.7, 3.1-3
Arpaci-Dusseau: 4.2, 4.5, 5, 6.2-4
  • Context switches in xv6
  • Process control blocks
Quiz 01 (post-quiz for week 2) released, due 2022-02-01 12:15
Fri 28 Jan
Week 3
Tue 01 Feb

The Unix API 1

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 3.2-3
Arpaci-Dusseau: 5
  • POSIX versus Unix
  • Process creation and management: fork(), exec(), wait()
Wed 02 Feb

(add deadline)

Thu 03 Feb

The Unix API 2

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 3.2-3
Arpaci-Dusseau: 5, 39.6
  • Shells, generally, and the shell assignment
  • Unix: everything is a file, stdio, stdout
  • POSIX file API: open(), dup2(), close()
  • POSIX file API: read(), write()
  • POSIX API: pipe()
  • pipes and pipelines (start)
Quiz 02 (post-quiz for week 3) released, due 2022-02-08 12:15
Fri 04 Feb
xv6 introduction due at 11:59pm
shell released
Week 4
Tue 08 Feb

The Unix API 3 / Scheduling 1

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 7-7.1
Arpaci-Dusseau: 7.1-9
  • pipe and pipelines (finish)
  • partial read()s and write()s

  • xv6 creating the first process
  • threads versus processes
  • queues of processes and schedulers
    • aside: non-CPU scheduling
  • alternating I/O and CPU bursts
  • the process state machine
  • scheduling metrics: fairness, response time, throughput (start)
Thu 10 Feb

Scheduling 2

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 7.1
Arpaci-Dusseau: 7, 9
  • scheduling metrics: fairness, response time, throughput (finish)
  • FCFS, RR
  • priority scheduling
  • proportional share scheduling
    • lottery scheduling (start)
Quiz 03 (post-quiz for week 4) released, due 2022-02-15 12:15
Fri 11 Feb
shell checkpoint due at 11:59pm
Week 5
Tue 15 Feb

Scheduling 3

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 7.1
Arpaci-Dusseau: 8
  • lottery scheduling (finish)
  • SJF, SRTF
  • approximating SRTF: multi-level feedback scheduling
  • (briefly) Linux’s Completely Fair Scheduler (start)
Thu 17 Feb

Scheduling 4 / Threads 1

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 4.1-4, 5.1-3
Arpaci-Dusseau: 27, 26
  • (briefly) Linux’s Completely Fair Scheduler (finish)

  • pthreads API — pthread_create, pthread_join
  • some pthreads examples
  • bank account synchronization example / lost write
  • race conditions
Quiz 04 (post-quiz for week 5) released, due 2022-02-22 12:15
Fri 18 Feb
shell due at 11:59pm
lottery scheduler released
Week 6
Tue 22 Feb

Synchronization 1: Locks 1

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 5.3, 5.7
Arpaci-Dusseau: 26, 28
  • building locks is tricky: too much milk
  • mutual exclusion / critical sections
  • locks
  • barriers
  • aside: standard container rules
  • disabling interrupts for locks
Thu 24 Feb

Synchronization 2

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 5.3-5, 5.7
Arpaci-Dusseau: 28, 30
  • load/store reordering
  • locks with interrupt disabling
  • cache coherency and false sharing
  • atomic operations and spinlocks
Quiz 05 (post-quiz for week 6) released, due 2022-03-01 12:15
Fri 25 Feb
lottery scheduler due at 11:59pm
life released
Week 7
Tue 01 Mar

Synchronization 3: Mutexes and Monitors

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 5.5-6
Arpaci-Dusseau: 30, 31
  • avoiding busy waits: mutexes
  • producer/consumer idea
  • monitors
    • producer/consumer with monitors
  • intuition for using monitors
Wed 02 Mar

(drop deadline)

Thu 03 Mar

Synchronization 4

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 5.5-6, 6.5
Arpaci-Dusseau: 30, 31
  • monitor exercises
  • counting semaphores
  • producer/consumer with counting semaphores
Quiz 06 (post-quiz for week 7) released, due 2022-03-15 12:15
Fri 04 Mar
life due at 11:59pm
pool released
Week 8
Tue 08 Mar
(no class)
Thu 10 Mar
(no class)
Week 9
Tue 15 Mar

Synchronization 5

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 8.2-3
Arpaci-Dusseau: 13, 18-20
  • reader/writers problem
    • reader or writer priority
  • deadlock
    • definition: resources and conditions
    • examples
  • deadlock prevention through ordering
Thu 17 Mar

Virtual Memory 1

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 8.3, 9.4
Arpaci-Dusseau: 18-20
  • review(?) of virtual memory
  • xv6 paging
Quiz 07 (post-quiz for week 9) released, due 2022-03-22 12:15
Fri 18 Mar
Week 10
Mon 21 Mar
pool due at 11:59pm
Tue 22 Mar

Virtual Memory 2

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 8.3, 9.4
Arpaci-Dusseau: 18-20
  • xv6 paging (finish)
    • walkpgdir, mappages
Wed 23 Mar

(withdraw deadline)

Thu 24 Mar

Virtual Memory 3

 [  |screencapture (browser: 3:30pm; download: 3:30pm; audio only: 3:30pm) ]
Anderson&Dahlin: 8.3, 9.4
Arpaci-Dusseau: 21

due to technical difficulties the 12:30pm screen capture may not reflect what was shown to the class. (I recommend using the 3:30pm one)

  • xv6 paging misc
    • what if page fault
    • setting page table base register
  • page table tricks
    • allocate on demand
    • copy-on-write
Quiz 08 (post-quiz for week 10) released, due 2022-03-29 12:15
Fri 25 Mar
xv6 paging+protection released
Week 11
Tue 29 Mar

Virtual Memory 5

 [ 
slides (tentative) (more than one day of slides)
 |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 9.6, 9.5, 9.7
  • memory mapped files, POSIX mmap
  • /proc/$$/maps
  • demand paging
  • the page cache
  • page replacement
  • page replacement algorithms (ideal)
    • ideal: Belady’s MIN
Thu 31 Mar

Virtual Memory 6

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 9.5, 9.7
  • page replacement algorithms (possible)
    • LRU
    • second chance
  • non-LRU-friendly patterns
Quiz 09 (post-quiz for week 11) released, due 2022-04-05 12:15
Fri 01 Apr
xv6 paging+protection checkpoint due at 11:59pm
Week 12
Tue 05 Apr

IO

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 11.3, (12.1-2),
Arpaci-Dusseau: 36, (37, 44,) 39-40
  • virtual memory: being proactive / readahead

  • device files
  • device drivers and interrupts
    • “top” and “bottom” halves
    • device interface
    • devices as magic memory
    • aside on I/O space
  • direct memory access
Thu 07 Apr

Filesystems 1

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 13.3 (FAT, FFS, NTFS), 13.4, 14.1
Arpaci-Dusseau: 41, 42, 45
  • disk interface: sectors
  • FAT: linked lists on disk
Quiz 10 (post-quiz for week 12) released, due 2022-04-12 12:15
Fri 08 Apr
xv6 paging+protection due at 11:59pm
FAT reading released
Week 13
Tue 12 Apr

Filesystems 2

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 13.3 (FAT, FFS, NTFS), 13.4, 14.1
Arpaci-Dusseau: 41, 42, 45
  • the inode concept
  • double- and triply-indirect blocks
  • (briefly) extents
  • write-ahead logging and journaling filesystems (start)
Thu 14 Apr

Distributed Systems 1: Intro / RPC

 [ 
slides (tentative) (more than one day of slides)
 |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Arpaci-Dusseau: 48
Quiz 11 (post-quiz for week 13) released, due 2022-04-19 12:15
Fri 15 Apr
FAT reading checkpoint due at 11:59pm
Week 14
Tue 19 Apr

Distributed Systems 3: RPC 2 / Failure 1

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Arpaci-Dusseau: 48
  • remote procedure calls (finish)
  • network failures and acknowledgments
  • fail-stop model
  • distributed transactions
Thu 21 Apr

Distributed Systems 3: Failure 2

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
  • how naive distributed transactions don’t work
  • two-phase commit
  • two-phase commit examples
Quiz 12 (post-quiz for week 14) released, due 2022-04-26 12:15
Fri 22 Apr
FAT reading due at 11:59pm
twophase released
Week 15
Tue 26 Apr

Distributed Systems 4 / Access Control

 [  |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Arpaci-Dusseau: 53-55
  • two-phase commit (finish)
  • two-phase assignment

  • access control lists
  • user IDs on Unix
  • /bin/login
  • set-user-ID (start)
Thu 28 Apr

Access Control 2 / Virtual Machines

 [ 
slides (tentative)
 |screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]
Anderson&Dahlin: 10.2
Quiz 13 (post-quiz for week 15) released, due 2022-05-03 12:15
Fri 29 Apr
Week 16
Tue 03 May

Exam Review

 [ screencapture (browser:12:30pm 3:30pm; download:12:30pm 3:30pm; audio only:12:30pm 3:30pm) ]

notes: 12:30pm 3:30pm

twophase due at 11:59pm
Week 17
Thu 12 May

Final Exam

Via quiz system.

Released 7pm 11 May.

Due 5pm 13 May.

24 hour time limit (from when you open the exam; time expires earlier if you open the exam less than 24 from the due time).