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; and from Silberchartz, Galvin, and Gagne, Operating Systems Concepts, Ninth Edition. (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
Tue 02 Feb

What are OSes? / Logistics

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 1.1-2
Arpaci-Dusseau: 2, 3
Silberchartz: 1, 2.1-5, 3.1
  • Logistics
  • What is an operating system
  • Dual-mode operation; protection; exceptions
  • process VMs
  • Process = thread + address space
Thu 04 Feb

Exceptions / Context Switching

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 2.1-6
Arpaci-Dusseau: 3.2, 4.1, 4.3-5, 6.2-3
Silberchartz: ???
  • xv6 generally
  • System calls in xv6
  • Other exception handling
  • Context switches generally
Fri 05 Feb
xv6 introduction released
Week 2
Tue 09 Feb

The Unix API 1

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 3.5, 2.7, 3.1-3
Arpaci-Dusseau: 4.2, 4.5, 5, 6.2-4
Silberchartz: 3.3-4?, 11.1
  • Context switches in xv6
  • Process control blocks
  • POSIX versus Unix
  • Process creation and management: fork()
Thu 11 Feb

The Unix API 2

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 3.2-3, 4.5-6
Arpaci-Dusseau: [missing POSIX API], 7.1
Silberchartz: 11.2, 6.1
  • Process creation and management: fork() [finish], exec(), wait()
  • Shells, generally
  • Shell assignment
  • Unix: everything is a file, stdio, stdout
  • POSIX file API: open(), dup2() [start]
Fri 12 Feb
xv6 introduction due at 11:59pm
shell released
Week 3
Tue 16 Feb

The Unix API 3

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 7.1, 7.5
Arpaci-Dusseau: [missing POSIX API]
Silberchartz: 3.2, 6.2-3

(add deadline)

  • POSIX file API: dup2() [finish], close(), read(), write()
  • POSIX API: pipe()
  • pipes and pipelines
Thu 18 Feb

Scheduling 1

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 7.1
Arpaci-Dusseau: 7.2-9
Silberchartz: 6.7
  • 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
Fri 19 Feb
Week 4
Tue 23 Feb

Scheduling 2

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 7.1
Arpaci-Dusseau: 7, 9
Silberchartz:
  • FCFS, RR
  • priority scheduling
  • proportional share scheduling
    • lottery scheduling
  • SJF
Wed 24 Feb
shell checkpoint due at 11:59pm
Thu 25 Feb

Scheduling 3

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 7.1
Arpaci-Dusseau: 8
Silberchartz:
  • SRTF
  • approximating SRTF: multi-level feedback scheduling
  • (briefly) Linux’s Completely Fair Scheduler
Fri 26 Feb
Week 5
Tue 02 Mar

Threads 1

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 4.1-4, 5.1-3
Arpaci-Dusseau: 27
Silberchartz:
  • pthreads API — pthread_create, pthread_join
  • some pthreads examples
  • bank account synchronization example / lost write
  • race conditions
Wed 03 Mar
shell due at 11:59pm
lottery scheduler released
Thu 04 Mar

Synchronization 1: Locks 1

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 5.3, 5.7
Arpaci-Dusseau: 26, 28
Silberchartz:
  • building locks is tricky: too much milk
  • mutual exclusion / critical sections
  • locks
  • barriers
  • aside: standard container rules
  • disabling interrupts for locks
Fri 05 Mar
Week 6
Tue 09 Mar
(no class)
Wed 10 Mar
lottery scheduler due at 11:59pm
life released
Thu 11 Mar

Synchronization 2

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 5.3-5, 5.7
Arpaci-Dusseau: 28, 30
Silberchartz:
  • load/store reordering
  • spinlocks
  • atomic operations: test-and-set
  • false sharing
  • avoiding busy waits: mutexes
  • producer/consumer idea
  • (start) monitors
Fri 12 Mar
Week 7
Tue 16 Mar

Synchronization 3

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 5.5-6
Arpaci-Dusseau: 30, 31
Silberchartz:
  • monitors
    • producer/consumer with monitors
  • intuition for using monitors
  • monitor exercises
  • counting semaphores
Wed 17 Mar
Thu 18 Mar

Synchronization 4

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 5.5-6, 6.5
Arpaci-Dusseau: 30, 31
Silberchartz:
  • producer/consumer with counting semaphores
  • reader/writers problem
    • reader or writer priority
  • deadlock (start)
Fri 19 Mar
life due at 11:59pm
pool released
Week 8
Tue 23 Mar

Virtual Memory 1

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 8.2-3
Arpaci-Dusseau: 13, 18-20
Silberchartz:
  • deadlock
    • definition: resources and conditions
    • examples
  • deadlock prevention through ordering
  • review(?) of virtual memory
  • xv6 paging
Wed 24 Mar
Thu 25 Mar

Virtual Memory 2

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 8.3, 9.4
Arpaci-Dusseau: 21
Silberchartz:
  • xv6 paging (con’t)
Fri 26 Mar
pool due at 11:59pm
xv6 paging+protection released
Week 9
Tue 30 Mar

Virtual Memory 3

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 8.3, 9.4, 9.5
Arpaci-Dusseau: 21-22
Silberchartz:
  • xv6 paging (finish)
  • page table tricks
    • allocate on demand
    • copy-on-write
  • memory mapped files, POSIX mmap
Thu 01 Apr

Virtual 4

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 8.3, 9.1, 9.3-9.6
Arpaci-Dusseau: 21-22
Silberchartz:
  • /proc/$$/maps
  • demand paging
  • the page cache
  • page replacement
  • page replacement algorithms (ideal) (start)
    • ideal: Belady’s MIN
Fri 02 Apr
Week 10
Tue 06 Apr

Virtual 5

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin:
Arpaci-Dusseau: 37, 44, 39-41
Silberchartz:
  • page replacement algorithms (ideal) (finish)
    • ideal possible: LRU
  • accessed bits and simulating them
  • dirty bits
  • page replacement algorithms (possible)
    • second chance
    • (briefly) “CLOCK” algorithms
  • (briefly) readahead
Wed 07 Apr
xv6 paging+protection checkpoint due at 11:59pm
Thu 08 Apr

I/O 2

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 12.1
Arpaci-Dusseau: 37, 39-41
Silberchartz:
  • device files
  • device drivers and interrupts
    • “top” and “bottom” halves
    • device interface
    • devices as magic memory
    • aside on I/O space
  • direct memory access
  • disk interface: sectors
Fri 09 Apr
Week 11
Tue 13 Apr

Filesystems 1

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 12.1-2, 3.3 (FFS, FAT), 13.4, "14.1"
Arpaci-Dusseau: 42, 47
Silberchartz:
  • FAT: linked lists on disk
  • the inode concept
  • double- and triply-indirect blocks (start)
Wed 14 Apr
xv6 paging+protection due at 11:59pm
FAT reading released
Thu 15 Apr
(no class)
Fri 16 Apr
Week 12
Tue 20 Apr

Filesystems 2 / Sockets

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: [missing]
Arpaci-Dusseau: 48
Silberchartz: 17.6?
Wed 21 Apr
FAT reading checkpoint due at 11:59pm
Thu 22 Apr

Distributed Systems 2: RPC / Failure

 [ | Zoom recording (passcode on Collab) ]
  • (briefly) sockets (high-level POSIX API)
  • remote procedure calls
  • fail-stop
Fri 23 Apr
Week 13
Tue 27 Apr

Distributed Systems 3: Failure

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin:
Arpaci-Dusseau: 49-50
Silberchartz:
  • distributed transactions
  • two-phase commit
  • two-phase assignment
Wed 28 Apr
FAT reading due at 11:59pm
twophase released
Thu 29 Apr

Access Control 1

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
  • two-phase commit examples
  • two-phase commit assignment Q&A

  • access control lists
  • user IDs on Unix
  • /bin/login
  • set-user-ID
Week 14
Tue 04 May

Access Control 2 / Virtual Machines

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
Anderson&Dahlin: 10.2
Arpaci-Dusseau: B
Silberchartz:
  • TOCTTOU
  • capabilities

  • trap and emulate
Thu 06 May

Exam Review

 [  |screencapture (browser; download | audio only)| Zoom recording (passcode on Collab) ]
twophase due at 11:59pm
Fri 07 May
Sat 08 May

Final Exam

Take home exam, released by 1PM 2021-05-08. Due 1PM 2021-05-09.