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/19 Introduction (notes) Lab 1 released, Lab 2 released
Thu 01/21 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/26 Processes (notes) (handout) Tanenbaum chapter 1 (one), 2.1
Wed 01/27 Lab 1 due, 11:59 PM
Thu 01/28 Virtual memory I: Address translation and protection, x86 page tables (notes) (handout) chapters 5 and 6 in 80386 HW1, Sol1
Week 3
Tue 02/02 Virtual Memory II: paging (notes) (handout) Tanenbaum 3--3.3
Thu 02/04 Paging (continued) (notes) Tanenbaum 3.4--3.6 HW2, Sol2 Lab 3 released
Week 4
Tue 02/09 No class. There will be an assigned video over the weekend of Feb. 13/14 Tanenbaum 3.7 (segmentation)
Wed 02/10 Lab 2 due, 11:59 PM
Thu 02/11 Replacement policies (notes) Tanenbaum 2.2 HW3, Sol3
Fri 02/12 Threads (by video) (notes) (handout) Watch video before class on Tuesday (EID needed to gain access to the video). You will need the handout; the notes may be helpful too. Lab T released
Week 5
Tue 02/16 Managing concurrency: mutual exclusion (notes) (handout) Tanenbaum 2.3, 2.5
Optional but recommended: Software Engineering, by Mike Dahlin
Original handout had typos. Current link is fixed. Here's the diff.
Wed 02/17 Lab 3A due, 11:59 PM
Thu 02/18 Managing concurrency: more synchronization primitives (notes) (handout) Read An Introduction to Programming with Threads, by Andrew Birrell HW4, Sol4
Fri 02/19 Lab 4 released
Week 6
Tue 02/23 Managing concurrency (continued) (notes) (handout) Tanenbaum 6
Wed 02/24 Lab T due, 11:59 PM
Thu 02/25 Synchronization trade-offs, deadlocks (notes) (handout) Work through the sleeping barber example question HW5, Sol5 Handout in class had a typo. The current link has it fixed. Here's the diff.
Week 7
Tue 03/02 Synchronization trade-offs (continued), avoiding concurrency, scheduling intro (notes) (handout) Tanenbaum 2.4
Wed 03/03 Lab 3B due, 11:59 PM
Thu 03/04 Scheduling continued. OS Organization: microkernels, exokernels (notes) Read the Tanenbaum-Torvalds debates
Read Improving IPC by kernel design, Proc. SOSP, 1993 (read Sections 1--5.3.6, 5.6--6, and the Appendix). If you are off-campus, this link through the UT libraries Web proxy may be useful.
HW6, Sol6
Week 8
Mon 03/08 Midterm review (notes)
Tue 03/09 IPC performance, Software safety (notes) (handout) Read Therac-25 paper. If you are off-campus, this link through the UT libraries Web proxy may be useful.
Also read (at least the first two pages of) this recent New York Times article.
Thu 03/11 Midterm
Fri 03/12 Recommended completion date for Lab 4A
Spring break
Tue 03/16 No class
Thu 03/18 No class Lab 5 released
Week 9
Tue 03/23 I/O and disks (notes) Tanenbaum 5-5.4 (skim 5.4.1, skip 5.4.4)
Thu 03/25 File systems I (notes) Tanenbaum 4-4.3.4 HW7, Sol7
Fri 03/26 Lab 4A and 4B due, 11:59 PM
Week 10
Tue 03/30 File systems II (notes) Tanenbaum: read 4.3.5-4.3.6, skim 4.4-4.4.4, read 4.5.3
Thu 04/01 Crash recovery (notes) no reading HW8, Sol8
Fri 04/02 Lab 4C due, 11:59 PM
Week 11
Tue 04/06 Journaling, 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. Lab 6 released
Mike Dahlin's notes on LFS may be helpful
Thu 04/08 Transactions, Client/Server, RPC, NFS (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/09 Lab 5 due, 11:59 PM
Week 12
Tue 04/13 NFS, Networking I (notes) Crash course in networking: read 7--7.3 in Saltzer's and Kaashoek's textbook on systems principles
Thu 04/15 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/16 Lab 7 released
Week 13
Tue 04/20 Networking III (notes) no reading
Thu 04/22 Guest lecture (Keith Winstein): Copyright law and copy protection Read this short interview of Jack Valenti (by our guest lecturer, Keith), and watch this short video of a freezing attack on RAM. HW11, Sol11
Fri 04/23 Email lab 7 proposal and project teams by 3:00 PM
Lab 6 due, 11:59 PM
Week 14
Tue 04/27 2PC, Virtual machines (notes) Tanenbaum 8.3
Thu 04/29 Virtual machines, Security I (stack smashing) (notes) (handout) Tanenbaum: Read 9--9.3.3. Skim 9.3.4--9.3.6. Read 9.3.7--9.3.8. Skim 9.4--9.5. Read 9.6. Skim 9.7-9.7.2. Read 9.7.3. Skim 9.7.4. Read 9.7.5. HW12, Sol12
Week 15
Mon 05/03 Email whether doing an in-class final project demo by 9:00 PM
Tue 05/04 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/06 Demos, Security III, and Wrap-up (notes) Read the Secure File Nets paper (it's probably most important to understand the figures and graphs in this paper) If you are interested in computer security, you may enjoy reading Mike Dahlin's notes on security, which have some great examples and advice
Sun 05/09 Lab 7 due, 9:00 PM
Exam week
Another exam week
Sun 05/16 Study session, 7:00-9:00 PM, TAY 3.128 (notes)
Tue 05/18 Final exam, 9:00 AM--12:00 PM, ECJ 1.204

Last updated: Sun May 16 20:55:45 -0500 2010 [validate xhtml]