This class has been reinstated to the schedule, correcting the Registrar's error. If you have questions about assignment due dates, let me know.
This page is organized by the weeks of the quarter in which lectures were give . The weeks are in inverse order, on the assumption you will most often be looking for the most recent week.
This class will be taught by Peter Reiher. The textbook is Principles of Computer System Design, by Jerome Saltzer and Frans Kaashoek. Assigned readings are from this book, unless otherwise indicated. Some chapters of this textbook are not in the hard copy version, but are only available on-line. For these readings, I will provide a URL.
I will be lecturing on these subjects during the class.
The final exam will be comprehensive, covering all material in the class, including material in either lectures or readings. It will include material covered before the midterm. It is open book, open notes, and you can use a computer to take the test and submit your answers in electronic form. Compared to the midterm, the final exam will have fewer questions, but they will require more than just understanding concepts and definitions. You will need to apply knowledge from the class. Here is a sample final exam with questions of the type you will see on the test.
Chapter 11, Overview and section 11.1, pages 11-4 to 11-28.
These readings are part of the online textbook and can be found here.
Chapter 11, section 11.2, pages 11-28 to 11-34.
Chapter 11, section 11.4, pages 11-49 to 11-53.
Chapter 11, section 11.6.3, pages 11-76 to 11-80.
These readings are part of the online textbook and can be found here.
Trusted Platform Module (TPM) Summary.
The current case of the FBI seeking to compel Apple's assistance in accessing data stored on an iPhone actually relates to issues of trusted boot, operating system security, and the use of hardware to provide privacy. Here is a brief article describing some of the technical issues related to this controversy. An important point to be aware of in this case is that the detailed particulars of a security solution make a big difference in what is and is not possible, and what can and cannot be done. The details outlined in this article are not the same for all models of iPhone, past and future. Generally, when talking about security, details matter a lot.
Here is the description of lab 4. It will be due on March 17. The design project mentioned earlier as a class assignment will not be assigned this quarter, so lab 4 will be your final homework assignment.
Chapter 3, section 3.2, pages 132-138.
Chapter 4, section 4.5, pages 184-195.
A Survey of Distributed File Systems, M. Satyanarayanan, Annual Review of Computer Science, 1990. You only need to read sections 1, 2, 3.1, and 3.3.
Fallacies of Distributed Computing Explained, Amon Rotem-Gai-Oz.
What Cloud Computing Really Means, Eric Knorr, Galen Gruman, Infoworld.
Notes on distributed operating systems, Peter Reiher.
Chapter 2, section 2.5.
Chapter 8, Sections 8.1.1, 8.2.1, and 8.5.4. Here is a link to the PDF online version of Chapter 8.
Chapter 7, section 7.1. Here is a link to the PDF online version of Chapter 7.
Minilab 2 is due March 3. Here is the lab description. Also, here are some lab notes for minilab2 and the code skeleton for minilab 2.
An Introduction to Device Drivers,", Chapter 1 of "Linux Device Drivers," by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, published by O'Reilly, 2005..
Understanding Modern Device Drivers, Asim Kadaf and Michael M. Swift, Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems. 2012.
Chapter 6, section 6.1 (pages 300-321), section 6.3.4 (pages 360-362)
Lab 3 is due February 18. Here is the specification for lab 3. Here are notes on lab 3, and here are lab 3 slides. Here is the lab 3 code skeleton.
Chapter 6, Sections 6.2-6.2.1 (pages 321-323).
Dynamic Storage Allocation: A Survey and Critical Review, by Paul Wilson, Mark Johnstone, Michael Neely, and David Boles. This is a very long paper. You are only required to read the following sections of it:
Sections 1.1-1.3 and section 2-21 (pages 6-13) and sections 3.3 and 3.4 (pages 42-45).
Chapter 5, Section 5.4 (pages 242-255).
Chapter 6, section 6.2.2-6.2.9 (pages 323-347).
Lab 2 will be due on February 17. Here is the specification for the lab. There are also notes and slides associated with this lab that you migh find helpful. The specification contains a link to the skeleton code that no longer works. Working skeleton code is here.
Since we will be having the miderm exam this week, only one lecture is assigned for the week.
The midterm will be closed book, closed notes. You will not be allowed to use electronic devices to take the midterm. It will cover all lectures and reading assignments through the end of week 5. Material that appeared only in labs and not in lectures or assigned readings will not appear on the midterm. The midterm will consist of 10 short answer questions.
Here are some example midterm questions similar in style to those that will appear on the test. Answers are given on the second page.
Chapter 5, Section 5.2.5 (pages 221-222), Chapter 5, Section 5.6 (pages 273-284)
Lab 1B is due on February 1 and lab 1C is due on February 3. You do not need any new materials to complete these portions of lab 1, just the set of materials assigned in week 2. No labs will be due during week 5, since you will have the class midterm that week.
Chapter 5, Section 5.2 (pages 210-230), Chapter 4, Section 4.2 (pages 167-173)
Chapter 9, Section 9.1-9.1.7 (pages 9-1 through 9-20). Note: This is one of the chapters that is not included in the print version of the book, but is only available on line. Here is a link to the PDF online version.
Parts 1B and 1C of Lab 1 will be due next week, on February 1 and 3, respectively. The lab description and code skeleton given for lab 1A covers these labs, as well.
Chapter 5, Section 5.5 (pages 255-272).
Chapter 6, Section 6.3 (pages 347-362).
Lab 1a is due January 21. Here is the specification for lab 1. Here is the skeleton code for the lab.
The first minilab is due January 26. Here is the specification for Minilab 1. Here is the code skeleton for Minilab 1.
Chapter 2, Section 2.1 (pages 43-60)
Chapter 4, Section 4.1-4.1.2 (pages 147-162), Chapter 5, Section 5.1 (pages 199-210), Section 5.3-5.3.4 (pages 230-237)