CS 3400: Operating Systems
Fall 2021 | Topics | Project | Reading |
Aug 23–27 | introduction, os interfaces | building and running xv6 | xv6 ch 1, 3ep ch 1–2 |
Aug 30–Sep 3 | processes and address spaces | xv6 ch 2, 3ep ch 3–5 | |
Sep 6–10 (Labor Day) | pc hardware, boot sequence | ||
Sep 13–17 | page tables | xv6 ch 3, 3ep ch 12–15 | |
Sep 20–24 | virtual memory, malloc | 3ep ch 16–24 | |
Sep 27–Oct 1 | traps and system calls | xv6 ch 4 | |
Oct 4–8 | |||
Oct 11–15 (Fall break) | interrupts and device drivers | malloc and free | xv6 ch 5 |
Oct 18–22 | locks and concurrency | xv6 ch 6, 3ep ch 25–30 | |
Oct 25–29 | semaphores, bugs, event loops | system call: trace exec | 3ep ch 31–34 |
Nov 1–5 | context switching | xv6 ch 7, 3ep ch 6–7 | |
Nov 8–12 | scheduling | sharks and divers | 3ep ch 8–11 |
Nov 15–19 | file systems | scheduler trace | xv6 ch 8, 3ep ch 35–38 |
Nov 22–26 (Thanksgiving) | recovery, RAID | 3ep ch 39–46 | |
Nov 29–Dec 3 | distributed file systems | userspace file system | xv6 ch 9, 3ep ch 47–51 |
Changes to the schedule will be announced in class.
“xv6” refers to the xv6 commentary book, our guide to the xv6 operating system source code.
“3ep” refers to Operating Systems: Three Easy Pieces, our (free) primary text.
Resourses
- Syllabus
- Xv6 main landing page
- Examples from class
- Setting up
ssh
to connect tocs3400.cs.dixie.edu
without typing a password:- Written instructions
- Screencast demo (note, the written instructions are slightly simpler—open that page and follow along while you watch the screencast).
- File system assignment
Papers
- Dennis M. Ritchie and Ken Thompson. 1974. The UNIX time-sharing system. Commun. ACM 17, 7 (July 1974), 365–375.
- Mike Accetta, Robert Baron, William Bolosky, David Golub, Richard Rashid, Avadis Tevanian, Michael Young. Mach: A New Kernel Foundation for UNIX Development. USENIX Summer Conference (1986).
- Rob Pike, Dave Presotto, Sean Dorward, Bob Flandrena, Ken Thompson, Howard Trickey, Phil Winterbottom. Plan 9 from Bell Labs.
- John K Ousterhout, Hervé Da Costa, David Harrison, John A Kunze, Mike Kupfer, James G Thompson. A Trace-Driven Analysis of the UNIX 4.2 BSD File System. SOSP 1985.
- Hermann Härtig, Michael Hohmuth, Jochen Liedtke, Sebastian Schönberg, Jean Wolter. The performance of μ-kernel-based systems. SOSP 1997.
- Marshall K McKusick, William N Joy, Samuel J Leffler, Robert S Fabry. A Fast File System for UNIX. ACM Transactions on Computer Systems, Volume 2, Issue 3. August 1984.
- Michael N Nelson, Brent B Welch, John K Ousterhout. Caching in the Sprite Network File System. ACM Transactions on Computer Systems, Vol. 6, No. 1, February 1988, Pages 134-154.
- Mendel Rosenblum, John K Ousterhout. The Design and Implementation of a Log-Structured File System. ACM Trans. on Computer Systems 10(1), February 1992, pp. 26-52.
- David A Patterson, Garth A Gibson, Randy H Katz. A Case for Redundant Arrays of Inexpensive Disks (RAID). SIGMOD ‘88, June 1988.
- Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield. Xen and the art of virtualization. SOSP ‘03, October 2003.
- Jean-Pierre Lozi, Baptiste Lepers, Justin Funston, Fabien Gaud, Vivien Quéma, Alexandra Fedorova. The Linux scheduler: a decade of wasted cores. EuroSys ‘16, April 2016.
Last Updated 11/18/2021