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 or notes 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. If you do not have a cs.unc.edu email address and are registered in the class, please send the instructor your preferred google account to be granted access to the videos.

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
Wed 08/24 Administrative and Introduction
Slides. Printer friendly slides. Video.
Mon 08/29 C Programming Review and Lab 0
Slides. Printer friendly slides. Video.
Wed 08/31 History of Operating Systems
Slides. Printer friendly slides. Video. Chapter 2.
  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).
Fri 09/02
Lab 0 Due. 11:59PM.
Mon 09/05 Labor Day
No classes.
Wed 09/07 Processes and OS Abstractions
Slides Printer Friendly Slides Video.
Academic Integrity Homework Due.
Chapter 4.
  1. Chapter 3 of "Understanding the Linux Kernel."
Mon 09/12 OS APIs
Slides. Printer friendly slides. 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)
Wed 09/14 Interrupts and system calls
Slides Printer Friendly Slides Video. Chapter 6. Chapter 4 of "Understanding the Linux Kernel."
Part 2: Virtual Memory
Mon 09/19 Address Spaces and Loading
Slides. Printer friendly slides. 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)
Wed 09/21 Virtual Memory
Slides. Printer friendly slides.Video. Chapter 15.
Mon 09/26 Virtual Memory
Slides. Printer friendly slides. Video. Chapter 16.
Wed 09/28 Virtual Memory
Slides. Printer friendly slides. Video. Chapter 18.
Fri 09/30
Lab 1 Due. 11:59PM.
Mon 10/03 Review Day
Video.
Wed 10/05 Exam 1
Part 3: Scheduling
Mon 10/10 Memory allocators
Slides. Printer friendly slides. 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
Wed 10/12 CPU Scheduling
Slides. Printer friendly slides.Video. Chapter 7. Chapter 7 of "Understanding the Linux Kernel."
Mon 10/17 CPU Scheduling
Slides. Printer friendly slides. 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
Wed 10/19 Threads
Slides. Printer friendly slides.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)
Mon 10/24 Concurrent Programming
Slides. Printer friendly slides.Video.
  1. Programming with Threads (Birrell 1996).
  2. Why Threads Are a Bad Idea (for most purposes) (Ousterhout, USENIX, 1996).
Wed 10/26 Locking
Slides. Printer friendly slides.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 10/28
Lab 2 Due. 11:59PM
Mon 10/31 Condition Variables
Slides. Printer friendly slides.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)
Wed 11/02 Deadlocks
Guest Lecture by Don Smith.
Slides. Printer friendly slides.Video.
Chapter 32.
Mon 11/07 Review Day Video.
Wed 11/09 Exam 2
Part 5: File Systems
Mon 11/14 Disk Scheduling
Slides. Printer friendly slides.Video. 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."
Wed 11/16 File Systems Basics
Slides. Printer friendly slides.Video. Chapter 39.
Mon 11/21 File System Consistency Issues
Slides. Printer friendly slides.Video. Chapter 42.
  1. EXT3, Journaling Filesystem (Tweedie, OLS 2000)
  2. The new ext4 filesystem: Current status and future plans (Mathur, Cao, Bhattacharya, Dilger, Tomas, Vivier, OLS 2007)
Wed 11/23 Thanksgiving Recess
No class.
Mon 11/28 Linux Virtual File System Layer (VFS)
Slides. Printer friendly slides.Video. Chapter 12, 16 and 18 of "Understanding the Linux Kernel."
Wed 11/30 Fast File System
Video. Chapter 41. A Fast File System for UNIX (McKusick, Joy, Leffler, and Fabry, TOCS 1984)
Sat 12/03
Lab 3 Due. 11:59PM
Part 6: Security
Mon 12/05 Computer Security Techniques
Slides. Printer friendly slides. Video.
Wed 12/07 Integrated example: Microsoft Xbox
Don's Notes Video. 17 Mistakes Microsoft Made in the Xbox Security System (Steil 2005)
Wed 12/07
Lab 4 Due. 11:59PM
Tue 12/13 Final Exam
12:00 noon - 2: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: 2016-12-12 09:46:11 -0500 [validate xhtml]