CS 372H: Schedule

Note that this schedule may change.

Topics Reading assignment
(to be completed before class)
Homework (non-graded exercises) Notes
Week 1
Tue 01/18 Introduction (notes) Lab 1 released, Lab 2 released
Thu 01/20 PC hardware and x86 programming (notes) (handout) Exercise 1 of Lab 1,
PC Assembly Language (skim),
"Brennans Guide to Inline Assembly" (skim)
Week 2
Tue 01/25 gcc calling convention, user/kernel interaction, processes (notes) (handout) Tanenbaum chapter 1 (one), 2.1
Wed 01/26 Lab 1 due, 9:00 PM
Thu 01/27 Processes (continued). Virtual memory I: Address translation and protection, segmentation (notes) (handout) chapters 5 and 6 in 80386 HW1, Sol1 Lab 3 released
Week 3
Mon 01/31 Lab 2a due, 9:00 PM
Tue 02/01 Virtual Memory II: paging (notes) (handout) Tanenbaum 3--3.3
Tue 02/01 Review session, 8:00-9:30 PM. Room: WRW 113.
Thu 02/03 Virtual Memory III: page faults (notes) (handout) Tanenbaum 3.4--3.7 HW2, Sol2 Lab T released
Fri 02/04 Lab 2b due, 9:00 PM
Week 4
Tue 02/08 Virtual Memory IV: replacement policies (notes) Tanenbaum 2.2
Thu 02/10 Concurrency I: Threads (notes) (handout) Tanenbaum 2.3, 2.5
Optional but recommended: Software Engineering, by Mike Dahlin
HW3, Sol3
Fri 02/11 Lab 3a due, 9:00 PM
Week 5
Tue 02/15 Concurrency II: Threads, Mutual exclusion (notes) (handout) Read An Introduction to Programming with Threads, by Andrew Birrell
Thu 02/17 Concurrency III: Spinlocks, mutexes, condition variables, monitors (notes) (handout) Tanenbaum 6 HW4, Sol4 Class handout had errors. Current link is fixed. Here's the diff.
Fri 02/18 Lab 3b due, 9:00 PM
Week 6
Tue 02/22 Concurrency IV: Practice with monitors, deadlock (notes) (handout) Work through the sleeping barber example question
Thu 02/24 Concurrency V: Trade-offs and problems from locking (notes) (handout) Read the Tanenbaum-Torvalds debates and Andy Tanenbaum hasn't learned anything HW5, Sol5
Fri 02/25 Lab T due, 9:00 PM
Week 7
Tue 03/01 Software safety (notes) (handout) (1) Read the Therac-25 paper. If you are off-campus, this link through the UT libraries Web proxy may be useful.
(2) While you are reading, view these two helpful graphics, which nicely illustrate linear accelerators and problems that they have caused.
(3) Read this recent New York Times article and at least the first two pages of this fairly recent one (make sure you see the pictures).
Thu 03/03 OS organization, Scheduling (notes) Tanenbaum 2.4 HW6, Sol6
Fri 03/04 Lab 4a due, 9:00 PM
Week 8
Mon 03/07 Midterm review, 7:30--9:00 PM, WEL 2.308 (notes)
Tue 03/08 Scheduling (notes)
Thu 03/10 Midterm
Spring break
Tue 03/15 No class
Thu 03/17 No class
Week 9
Tue 03/22 I/O, Disks (notes) Tanenbaum 5-5.4 (skim 5.4.1, skip 5.4.4)
Thu 03/24 Disks, File systems I (notes) Tanenbaum 4-4.3.4 HW7, Sol7 Lab 5 released
Fri 03/25 Lab 4b due, 9:00 PM
Week 10
Tue 03/29 File systems II (notes) Tanenbaum: read 4.3.5-4.3.6, skim 4.4-4.4.4, read 4.5.3
Thu 03/31 No class. There will be an assigned video over Apr. 8-10 HW8, Sol8
Fri 04/01 Lab 4c due, 9:00 PM Lab 6 released
Week 11
Tue 04/05 Crash recovery, LFS (notes) Read The design and implementation of a log-structured file system. If you are off-campus, this link through the UT libraries Web proxy may be useful. Mike Dahlin's notes on LFS may be helpful
Thu 04/07 Transactions (notes) Tanenbaum: skim 8.2--8.2.3, and read 8.2.4. This will be useful background for the following paper:
Read Design and Implementation of the Sun Network File System, Proc. Summer USENIX Conference, 1985
HW9, Sol9 Nice table by Don Porter showing different places transactions show up
Fri 04/08 Client/Server, RPC, NFS (by video) (notes)
Lab 5 due, 9:00 PM
Watch video before class on Tuesday (EID needed to gain access to the video). You may wish to print out the class notes and follow along. Lab 7 released
Week 12
Tue 04/12 Networking I (notes) Crash course in networking: read 7--7.3 in Saltzer's and Kaashoek's textbook on systems principles
Thu 04/14 Networking II (notes) Crash course in networking, continued: again in Saltzer and Kaashoek, read 7.4--7.4.3, ignore 7.4.4, read 7.4.5, skim 7.5 and 7.6 (but make sure you have a sense for what problems those sections are describing), read sidebar 7.5, read 7.7--7.9.1, read 7.9.4 HW10, Sol10
Fri 04/15 Lab 6a due, 9:00 PM
Week 13
Tue 04/19 Networking III, Two generals' problem, 2PC (notes) Read An Access Control Hierarchy for Secure File Logging
Thu 04/21 Guest lecture (Keith Winstein): Copyright law and copy protection (1) Read this short interview of Jack Valenti (by our guest lecturer, Keith); and
(2) Read Keeping Secrets in Hardware: the Microsoft XBox(TM) Case Study; and
(3) Read George Hotz's memo on how he obtained control of the PlayStation 3 from an unprivileged process
HW11, Sol11 You might be interested in Mike Dahlin's notes on 3-phase commit (3PC)
Fri 04/22 Email lab 7 proposal and project teams by 3:00 PM
Lab 6b due, 9:00 PM
Week 14
Tue 04/26 Guest lecture (Jon Howell): Binary rewriting (Jon's demo and slide kit) Read ATOM: A System for Building Customized Program Analysis Tools, PLDI 1994
Optional: you may enjoy reading an early paper on sandboxing:
Efficient Software-Based Fault Isolation, SOSP 1993.
Also optional: you may also enjoy reading a recent paper that makes funky use of
segmentation hardware to implement sandboxing on the x86:
Vx32: Lightweight, User-level Sandboxing on the x86, USENIX, 2008
Thu 04/28 Security I: stack smashing (notes) (handout) Tanenbaum: Read 9--9.1. Skim 9.2. Read 9.3. Read 9.6. HW12, Sol12
Fri 04/29 Lab 7a due, 9:00 PM
Week 15
Tue 05/03 Security II (notes) Read Reflections on trusting trust. Note: this classic is only three pages, but the length is deceptive. It may take a few slow and careful readings to really see what Thompson did. Please read it several times before class; a skim will not be useful. You may enjoy reading about self-reproducing zipfiles, by Russ Cox
Thu 05/05 Security III and wrap-up (notes) Tanenbaum: Read 9.4--9.5. Skim 9.7-9.7.2. Read 9.7.3. Skim 9.7.4. Read 9.7.5.
Skim Mike Dahlin's notes on security
Sat 05/07 Study/review session, 6:00-8:00 PM, BUR 220 (notes)
Exams and project
Thu 05/12 Final exam, 7:00 PM--10:00 PM, UTC 1.130
Mon 05/16 Lab 7b due, 9:00 PM (hard deadline; no late hours can be spent)

Last updated: Sat May 07 21:23:28 -0500 2011 [validate xhtml]