CSE 306: 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.

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

Date Topics Notes Required Readings Optional Readings
Tue 01/29 Administrative and Introduction
Slides. Printer friendly slides.
Part 1: Operating System Overview
Thu 01/31 C Programming, History of Operating Systems
  1. C Slides. Printer friendly slides.
  2. OS HistorySlides. Printer friendly slides.
Chapter 2.1--2.4
  1. Chapter 1 of "Operating Systems: Principles and Practice"
  2. The UNIX Timesharing System (Ritchie and Thompson, SOSP, 1974).
  3. The Linux Edge (Linus Torvalds, Open Sources: Voices from the Open Source Revolution 1999).
  4. Tanenbaum-Torvalds Debate Summary
  5. Tanenbaum-Torvalds Debate: Part II (Tanenbaum 06).
  6. Mach: A New Kernel Foundation for UNIX Development (Accetta, Baron, Bolosky, Golub, Rashid, Tevanian, and Young, USENIX Summer '86).
Tue 02/05 x86 Assembly, Processes and OS Abstractions
  1. Assembly Slides. Printer friendly slides.
  2. Processes Slides Printer Friendly Slides
Chapters 3--3.2, 3.4
  1. Chapter 2--2.2 of "Operating Systems: Principles and Practice"
  2. Chapter 3 of "Understanding the Linux Kernel."
Thu 02/07 Interrupts and system calls
Slides Printer Friendly Slides Chapter 1.4
  1. Chapter 2.3 of "Operating Systems: Principles and Practice"
  2. Chapter 4 of "Understanding the Linux Kernel."
Part 2: Program Execution
Tue 02/12 Address Spaces and Loading
Slides. Printer friendly slides. Chapter 3.5
  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)
Thu 02/14 OS APIs
Slides. Printer friendly slides.
  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 02/15
Lab 1 Due. 11:59PM.
Tue 02/19 Threads
Slides. Printer friendly slides. Chapters 4.1--4.2
  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)
Part 3: Scheduling
Thu 02/21 CPU Scheduling
Slides. Printer friendly slides. Chapter 9 Chapter 7 of "Understanding the Linux Kernel."
Tue 02/26 CPU Scheduling
Slides. Printer friendly slides. Chapter 10
  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: Synchronization
Thu 02/28 Thread programming overview
  1. Overiew Slides. Printer friendly slides.
  2. Too Much Milk Slides. Printer friendly slides.
Chapter 5
  1. Programming with Threads (Birrell 1996).
  2. Why Threads Are a Bad Idea (for most purposes) (Ousterhout, USENIX, 1996).
Tue 03/05 Locks
Slides. Printer friendly slides.
  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)
Thu 03/07 Condition Variables
Slides. Printer friendly slides. Coding Standards for Programming with Threads (Dahlin 2007).
  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)
Tue 03/12 Semaphores, Monitors, Reader/Writer Locks
  1. Semaphore and Monitors Slides. Printer friendly slides.
  2. Reader/Writer Locks Slides. Printer friendly slides.
  1. Event-driven Programming for Robust Software (Dabek, Zeldovich, Kaashoek, Mazieres, and Morris, SIGOPS, 2002)
  2. Why Events Are A Bad Idea (for high-concurrency servers) (von Behren, Condit, and Brewer, HotOS, 2003)
Thu 03/14 Deadlocks
Slides. Printer friendly slides. Chapter 6.1--6.5
Fri 03/15
Lab 2 Due. 11:59PM
Tue 03/19 Spring Recess, Class Canceled
Thu 03/21 Spring Recess, Class Canceled
Part 5: File Systems
Tue 03/26 Disk Scheduling
Slides. Printer friendly slides. Chapter 11.1--11.3, 11.5--11.7
  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 03/28 Midterm
Tue 04/02 File Systems Basics
Slides. Printer friendly slides. Chapter 12 A Fast File System for UNIX (McKusick, Joy, Leffler, and Fabry, TOCS 1984)
Thu 04/04 File System Consistency Issues
Slides. Printer friendly slides.
  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)
Tue 04/09 Linux Virtual File System Layer (VFS)
  1. VFS Slides. Printer friendly slides.
  2. VFS 2 Slides Printer Friendly Slides
Chapter 12, 16 and 18 of "Understanding the Linux Kernel."
Thu 04/11 Network File System (NFS)
Design and Implementation of the SUN Network Filesystem (Sandberg, Goldberg, Kleiman, Walsh, and Lyon, USENIX 1985).
Mon 04/15
Lab 3 Due. 11:59PM
Tue 04/16 Linux Kernel Programming
Slides. Printer friendly slides.
Thu 04/18 Introduction to Kernel RootKits
Slides. Printer friendly slides.
Part 6: Virtual Memory
Tue 04/23 Virtual Memory
Slides. Printer friendly slides. Chapter 7.1--7.4
Thu 04/25 Virtual Memory
Slides. Printer friendly slides. Chapter 8
Tue 04/30 Virtual Memory
Slides. Printer friendly slides.
Thu 05/02 Virtual Memory
Part 7: Security
Tue 05/07 Security Threats
Slides. Printer friendly slides. Chapter 14
Thu 05/09 Computer Security Techniques
Chapter 15
Fri 05/10
Lab 4 Due. 11:59PM
Wed 05/22 Final Exam
11:15 am - 1:45pm. Javits 101.

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, Stony Brook University


Last updated: 2015-07-16 09:47:46 -0400 [validate xhtml]