Lectures | Topic |
1 | Introduction |
2-10 | Processes: Address Spaces, Threads, Synchronization, Deadlock, Scheduling |
11-15 | Memory: Segmentation, Paging, Virtual Memory |
16-18 | I/O, Filesystems |
19-20 | Protection and Security |
21 | Distributed Systems: Introduction |
22-25 | Communication: Messages, RPC, Group Communication |
26-28 | Distributed Filesystems |
If we can get through the earlier topics more quickly, I will happily spend more time discussing distributed systems.
The lectures are based in part on Tom Anderson's lecture notes for CS162 at UC Berkeley.
Nachos is installed locally in ~c536/nachos-3.4
on both the
Burrow and the Sharks.
Project + occasional problem sets | 40% |
Midterm examination | 23% |
Final examination | 37% |
Course grades have been distributed by email (if I didn't make any mistakes). If you haven't received your grade, please inquire.
Final Exam Statistics:
436: Mean=67/90 (74%), Stddev=18.
536: Mean=75/115 (65%), Stddev=19.
Problems 1-11 are worth 10 points each, except Problem 10, which is worth
15 points, because it's the only problem with 3 parts. The Extra Credit
problem is worth 5 points.
Sample Solutions to Final Exam (in PostScript)
Solutions to Practice Problems for the Final
Final: The final will not cover: (1) cryptography-based protocols that achieve secrecy and integrity, and (2) the definition and implementation of atomic broadcast and virtual synchrony. The final may cover (among other topics) message orderings (none, FIFO, total, global), leader election, totally-ordered broadcast, and mutual exclusion.
Office Hours:
On Monday, the instructor will have office hours at the usual time.
On Tuesday, the A.I. will have office hours at the usual time.
Final Exam (reminder): The final exam will be 5:00PM-7:00PM on Wednesday, December 18, in BH 304.
Statistics for 436:
Item | Mean | Stddev |
Projects 1+2 (out of 40) | 32.6 | 5.4 |
Problem Set 2 (out of 20) | 11.5 | 5.3 |
Statistics for 536:
Item | Mean | Stddev |
Projects 1+2 (out of 40) | 37.2 | 5.0 |
Problem Set 2 (out of 20) | 15.1 | 2.8 |
Textbook Readings: Finish Tanenbaum, Chapter 13.
Final Exam: The final, like the midterm, will deal with Nachos only to the extent that Nachos was discussed in lecture. The final will cover the entire course, with a moderate emphasis on material not covered by the midterm.
Practice Problems: Here are some Practice Problems for the Final, to help you check your understanding of topics not covered by previous problems sets, practice problems, or exams. Printouts will be distributed in lecture and discussion section on Wednesday and Thursday, respectively.
Project: Information on the blocking filesystem can be found in the
directory ~c536/public/blocking_filesys
.
Final Exam: To minimize memorization anxiety, the final exam will be open notes. "Notes" here includes only handwritten originals: no textbooks, no printouts, no photocopies. You are encouraged to work out problems from Tanenbaum and other sources as preparation for the final, but that material does not count as "notes", i.e., don't bring pages of worked-out problems to the exam. In addition to your notes, you may bring handouts distributed by the instructors (e.g., problem sets, solutions to problem sets).
Textbook Readings: Tanenbaum, Sections 12.1 and 12.2, and Chapter 13.
Course Evaluation: Please complete the on-line course evaluation form when you receive it via email. Alternatively, you can fill out the course evaluation form here on the Web.
Reminder: Scott will be out of town Thu-Sat, so questions during that time should be addressed to Sundar or c536@cs.
Project: Important comments about Synchronization in Project 4 were posted to the course newsgroup on Nov. 24.
Textbook Readings: Tanenbaum, Chapters 10 and 11 (cont'd from last week). You can skip Sections 11.1 (Clock Synchronization) and 11.4 (Atomic Transactions).
Happy Thanksgiving!
Textbook Readings: Tanenbaum, Chapters 10 and 11 (for this week and next).
Project: For Project 4, you can get 15% extra credit by implementing swap-space management that is efficient for sparsely-used address spaces. One way to do this is the first scheme described in a recent posting about swap space.
Project:
(1) Projects 3 and 4 were distributed in last Thursday's discussion section.
(2) Here is some Advice for teams that had difficulty with Project 2.
Final Exam: The final exam will be 5:00PM-7:00PM on Wednesday, December 18, in BH 304. If you have a problem with this, let me know immediately.
Project: Remember that Proj 2 is due on Fri, Nov. 1.
Project:
(1) You don't need to freeze the files from Project 1; you can continue to modify them until you submit Project 2. Revised instructions for submitting and freezing files are in the Project Mechanics Handout; the changes are summarized in a news posting.
(2) Revised project schedule:
Proj 2 due: | Fri, Nov. 1. |
Proj 3 design review: | Fri, Nov. 8, and Sat, Nov. 9 |
Proj 3 due: | Fri, Nov. 15 |
Proj 4 design review: | Fri, Nov. 22, and Sat, Nov. 23 |
Proj 4 due: | Fri, Dec. 6 |
Midterm:
(1) As mentioned in a news posting, the answers to questions 3 and 5 have been revised since printed solutions were distributed on Oct. 16. So, you might want to look at the revised Brief Solutions to the Midterm.
(2) Click for full-size plots showing the Midterm scores for 436 and Midterm scores for 536. Some statistics appear below. Here are smaller plots:
Grades: You can get an idea of your standing in the course from the following statistics (and the above plots for the midterm).
Statistics for 436:
Item | Mean | Stddev |
Project 0 (out of 10) | 9.2 | 1.3 |
Problem Set 1 (out of 15) | 7.2 | 4.7 |
Midterm (out of 90) | 58 (64%) | 11 |
Item | Mean | Stddev |
Project 0 (out of 10) | 9.5 | 1.3 |
Problem Set 1 (out of 20) | 14.7 | 4.4 |
Midterm (out of 90) | 70 (78%) | 15 |
Project:
(1) Design reviews for Project 2 will be held on Fri (Oct. 18, 1PM-6PM), Sat (Oct. 19, 9AM-2PM), and Mon (Oct. 21., 5:30PM-8PM). A sign-up sheet will be available at the midterm and during the discussion section.
(2) Project 5 has been cancelled. Project 4 will be the last project, unless overwhelming popular demand prompts resurrection of Project 5.
Project: Some comments on Projects 1 and 2 have been collected in the Projects 1 and 2 FAQ (last updated Oct. 11).
Midterm:
(1) The midterm will cover material up to and including the lecture of Oct. 7. This corresponds to all of the assigned reading so far, except sections 3.4-3.6 of Tanenbaum. The midterm focuses on the material covered in lecture and in the textbook, not on Nachos.
(2) The midterm will be closed book, closed notes, etc.
(3) You might want to look at these Practice Problems for Midterm. These are intended to give you a feeling for the planned level of difficulty of the exam questions. Here are Brief Solutions to Practice Problems for Midterm.
Project: A sign-up sheet to schedule design reviews for Project 1 will be available in this week's discussion section. As per the handout, the design reviews should occur on Fri and Sat of this week.
Homework: Problem Set 1 was distributed on Sep. 23. It is a problem set, not a programming assignment. It must be done individually, not in teams. It is technically due in lecture on Mon., Sep. 30, though I suggest you try to finish it by Fri., Sep 27, so you can get started on Project 1. Some comments on Problem Set 1 have been collected in the Problem Set 1 FAQ.
Exam Schedule: The midterm will be in-class on Wed., Oct. 16.
Project:
(1) Project 1 was distributed on Sep. 25. It is due by the end of the day on Fri, Oct. 11. Design reviews for Project 1 will be held on Fri and Sat, Oct. 4 and 5. Projects 1 and 2 are the same for 436 and 536.
(2) We strongly recommend that you carefully read both Thomas Narten's A Road Map Through Nachos (except the parts about virtual memory) and Mike O'Donnell's Guide to Reading the [Nachos] Source Code, if you haven't already.
(3) To help you schedule your semester, here are tentative due dates for future projects: Project 3, due Sun, Nov. 10; Project 4, due Sun, Nov. 24; Project 5, due Sat, Dec. 14. [This has changed; see below.]
Textbook Readings: start Tanenbaum, Chapter 6.
Project: Project 0 is due on Sep. 20. The instructions in the Project Mechanics handout for submitting a project were flawed. A posting to ac.c.436 describes the problem; you can also read that posting here.
Project:
(1) You should read A Quick
Introduction to C++, by Tom Anderson. This was distributed in the
discussion section on Sep. 5; if you didn't get a copy, you can print one
yourself, or you can ask us to print one. I recommend reading it even
if you are familiar with C++, because it contains some useful stylistic
guidelines. The code for the stack example is in
~c536/docs/c++example/
.
(2) A detailed version of Project 0 was distributed on Sep. 11. It is due on Sep. 20.
Project:
(1) Try to form teams by Monday, Sep. 9, so that you can start on Assignment 1 when it is distributed. As mentioned in the Project Mechanics Handout, you should notify us by email when you form a team.
(2) Read the Project Mechanics Page.
(3) Start reading the A Road Map Through Nachos and the
code in ~c536/nachos-3.4/code/threads
. Printouts of the Roadmap
and the threads
code will be distributed on Sep. 4.
Another very helpful resource is Mike O'Donnell's Guide
to Reading the [Nachos] Source Code. Mike's Guide is available only
in HTML format, so we won't be supplying printouts; this doesn't mean
you shouldn't read it!