COMP 530: Schedule

This schedule is also available as an ical file that you can subscribe to.

All material covered in the lectures, labs, and required readings may appear on the exams.

Optional readings provide additional explanation of material covered in class that can be useful in preparing for the exams.

Initially, I will post slides, notes, or videos from the last incarnation of this course (if they exist), and incrementally replace them with the versions presented in class (perhaps with fixes after class) as the semester progresses.

Papers are only accessible to hosts in the unc.edu domain, although most are available elsewhere online.

Video links are restricted to users with a cs.unc.edu youtube account. Log in with your_onyen@cs.unc.edu, using the same password you use to log into classroom. You may need to reset your password once, using https://www.cs.unc.edu/webpass/. If that doesn't work, email help@cs.unc.edu.

The schedule of topics is tentative, and may adjust over the course of the semester.

Date Topics Notes Required Readings Optional Readings
Part 1: Operating System Overview
Tue 08/21 Administrative and Introduction
Slides [pdf, pptx], Video.
  1. The UNIX Timesharing System (Ritchie and Thompson, SOSP, 1974).
  2. The Linux Edge (Linus Torvalds, Open Sources: Voices from the Open Source Revolution 1999).
  3. Tanenbaum-Torvalds Debate Summary
  4. Tanenbaum-Torvalds Debate: Part II (Tanenbaum 06).
  5. Mach: A New Kernel Foundation for UNIX Development (Accetta, Baron, Bolosky, Golub, Rashid, Tevanian, and Young, USENIX Summer '86).
Thu 08/23 C Programming Review and Lab 0
Slides [pdf, pptx], Video. (last year's video; this year lost)
Fri 08/24 530H Lab
Tue 08/28 Processes and OS Abstractions
Slides [pdf, pptx], Video.
Academic Integrity Homework Due.
Chapter 4.
  1. Chapter 3 of "Understanding the Linux Kernel."
Wed 08/29
Lab 0H Due. 11:59PM.
Thu 08/30 OS APIs
Slides [pdf, pptx], Video.
  1. Chapters 4, 10 of "The Design and Implementation of FreeBSD"
  2. Chapters 11, 12, and 19 of "Understanding the Linux Kernel."
  3. Delivering Signals for Fun and Profit (Zalewski, 2001)
Fri 08/31 530H Lab
Lab 0 Due. 11:59PM.
Tue 09/04 Interrupts and system calls
Slides [pdf, pptx], Video. Chapter 6. Chapter 4 of "Understanding the Linux Kernel."
Part 2: Virtual Memory
Thu 09/06 Address Spaces and Loading
Slides [pdf, pptx], Video. Chapter 13.
  1. Chapter 9 of "Understanding the Linux Kernel."
  2. The ELF Object File Format: Introduction (Youngdale, Linux Journal 1995)
  3. The ELF Object File Format by Dissection (Youngdale, Linux Journal 1995)
Fri 09/07 530H Lab
Sun 09/09
Lab 1H Due. 11:59PM.
Tue 09/11 Virtual Memory
Slides [pdf, pptx], Old Video. Chapter 15., Chapter 16.
Thu 09/13 Class Canceled
Class canceled for Hurricane Florence
Fri 09/14 530H Lab
Class canceled for Hurricane Florence Guest Lecture by Ethan Miller, "Twizzler: An Operating System Designed for Non-Volatile Memory", in FB 141
Tue 09/18 Virtual Memory
Slides [pdf, pptx], Video. Chapter 18. Chapter 20. Chapter 19.
Thu 09/20 Virtual Memory
Video.
Fri 09/21 530H Lab
Tue 09/25 Virtual Memory
Lab 1 or 2H Due. 11:59PM.
Video.
Thu 09/27 Virtual Memory
Video
Fri 09/28 530H Lab
Tue 10/02 Review Day
Video.
Thu 10/04 Exam 1
Fri 10/05 530H Lab
Sat 10/06 Memory allocators (Make-Up Lecture)
Slides [pdf, pptx], Video Hoard: A Scalable Memory Allocator for Multithreaded Applications (Berger, McKinley, Blumofe, and Wilson, ASPLOS 2000)
  1. Chapter 8 of "Understanding the Linux Kernel."
  2. Scalable memory allocation using jemalloc
  3. SuperMalloc: A Super Fast Multithreaded Malloc for 64-bit Machines (Kuszmaul, ISMM 2015)
Tue 10/09 Swapping
Guest Lecture by Don Smith.
Slides [pdf, pptx], Video.
Chapter 18.
Wed 10/10
Lab 3H, Part A should be done (advisory deadline). 11:59PM.
Thu 10/11 Swapping, Continued
Guest Lecture by Don Smith.
Video.
Fri 10/12 Class Canceled for University Day
Part 3: Scheduling
Tue 10/16 CPU Scheduling
Slides [pdf, pptx], Video. Chapter 7. Chapter 7 of "Understanding the Linux Kernel."
Thu 10/18 Fall Break, No Class
Fri 10/19 Fall Break, No Class
Lab 4H, Part A should be done (advisory deadline). 11:59PM.
Tue 10/23 CPU Scheduling
Lab 3H Due. 11:59PM
Slides [pdf, pptx], Video
Chapter 8.
  1. The Design and Implementation of an Operating System to Support Distributed Multimedia Applications (Leslie, McAuley, Black, Roscoe, Barham, Evers, Fairbarns, and Hyden, JSAC 1997).
  2. Exploiting Unix File-System Races via Algorithmic Complexity Attacks (Cai, Gui, and Johnson, IEEE Security & Privacy 2009).
Part 4: Threads and Synchronization
Thu 10/25 Threads
Slides [pdf, pptx], Video. Chapter 26.
  1. The Native POSIX Thread Library for Linux (Drepper and Molnar, 2005)
  2. Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism (Anderson, Bershad, Lazowska, and Levy, SOSP 1991)
Fri 10/26 530H Lab
Lab 2 Due 11:59PM
Lab 4H, Part B should be done (advisory deadline). 11:59PM.
Tue 10/30 Concurrent Programming
Slides [pdf, pptx], Video.
  1. Programming with Threads (Birrell 1996).
  2. Why Threads Are a Bad Idea (for most purposes) (Ousterhout, USENIX, 1996).
Thu 11/01 Locking
Slides [pdf, pptx], Video. Chapter 28.
  1. Algorithms for Scalable Synchronization on Shared Memory Multiprocessors (Mellor-Crummey and Scott, TOCS 1991)
  2. Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux (Franke, Russel, and Kirkwood, OLS 2002)
Fri 11/02 530H Lab
Tue 11/06 Class Canceled for Water Emergency
Thu 11/08 Review Day
Video.
Fri 11/09 530H Lab
Lab 4H, Due. 11:59PM.
Tue 11/13 Exam 2
Thu 11/15 Condition Variables
Slides [pdf, pptx], Video. Chapter 30.
  1. Experiences with Processes and Monitors in Mesa (Lampson and Redell, Communications of the ACM 23, 2, 1980).
  2. Chapter 5 of "Understanding the Linux Kernel."
  3. Transactional Memory: Architectural Support for Lock-Free Data Structures (Herlihy and Moss, ISCA 1993)
Fri 11/16 530H Lab
Tue 11/20 Deadlocks
Slides [pdf, pptx], Video. Chapter 32.
Thu 11/22 Thanksgiving Recess
No class.
Fri 11/23 Thanksgiving Recess
No class.
Part 5: File Systems
Tue 11/27 Disk Scheduling
Slides [pdf/a>, pptx], Last year's video (1), Last year's video (2). Chapter 37.
  1. An introduction to Disk Drive Modeling (Ruemmler and Wilkes, IEEE Computer 1994)
  2. Disk from the perspective of a file system (McKusick, CACM 2012)
  3. Chapter 18 of "Understanding the Linux Kernel."
Thu 11/29 File Systems Basics
Slides [pdf, pptx], Last year's video. Chapter 39.
Fri 11/30 530H Lab
Tue 12/04 Review Day Video.
Wed 12/05
Lab 3 or 5H, 6H Due. 11:59PM
Thu 12/13 Final Exam
12:00 noon - 3:00pm.

Copyright Notice: These lecture notes, homeworks, and lab assignments are part of an undergraduate course on operating systems. You must ask me permission to use these materials. I do not grant to you the right to publish these materials for profit in any form.
Donald Porter, The University of North Carolina at Chapel Hill


Last updated: 2018-12-06 15:12:07 -0500 [validate xhtml]