This page is organized by the weeks of the quarter in which lectures were given. 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 TA for the course is David Felber-- dvfelber@CS.UCLA.EDU. He will be responsible for all issues related to the lab projects and design problems. Questions on these should be directed to him.
The final exam for this class will be held Saturday, June 8, from 1-4 PM in 5249 Boelter Hall, unless you have made arrangements to have the exam proctored elsewhere.
This exam will be somewhat different than the midterm exam. There will be seven questions on it. You will be allowed to answer any four of those questions of your own choosing. The questions will be SUBSTANTIALLY more difficult than those on the midterm, and will typically require you to display a high degree of understanding of concepts covered in the class. Most of them will require you to apply such concepts to a new problem not discussed in the class.
The test will be closed book, closed notes. You will not be allowed to use electronic devices. You will have the full three hour period to complete the test.
Since I have never offered this class before, I cannot give you a sample final exam to examine. I would suggest looking over the discussion questions that were brought up in class. None of those are going to appear on the test, but if you don't feel like you could answer them intelligently, you probably will have difficulty with the questions 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.
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.
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)
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).
NOTE: I had a screwup and used exactly the same material for Lecture 8, Part 3 and Lecture 9, Part 1. So if you've already viewed the presentation for Lecture 8, Part 3, there's no need to watch the one for Lecture 9, Part 1. (They actually are different tapings, but they cover the same material.)
Chapter 5, Section 5.2.5 (pages 221-222), Chapter 5, Section 5.6 (pages 273-284)
Since we will be having the miderm exam on Saturday, only one lecture is assigned this week.
The midterm exam will be on Saturday, May 4, from 1-3 PM in 5249 Boelter Hall, unless you have made prior arrangements to have it proctored at another time and place. The test will cover all material presented in lectures or in assigned readings. It will not include materials only covered in the projects. The test will consist of several (~10) short answer questions. These questions will be intended to test your ability to apply concepts and ideas from the class to problems in operating systems. It is a closed book, closed notes test. You may not use electronic devices for the test.
In addition to looking over the slides and reviewing the assigned readings, I recommend you look at the discussions in the online forum. Material appearing exclusively in these forums will NOT be tested, but the discussions ongoing here will give you a sense of the kind of thinking I hope you will apply to the test questions.
Unfortunately, since this is the first time I have taught this class, I cannot offer you a useful sample midterm. Below, however, is a sample of the kind of question you might encounter on the midterm, and what I would regard as a good answer deserving full credit.
Q: What does it mean for a protocol to be "stateless" and why is this a desirable thing in client/server protocols?
A: The server is not assumed to maintain "session state" (i.e. remember anything about previous operations in the session).
Stateless protocols make it relatively easy to recover from server failures. A back-up server can take over the session at any time, because the protocol does not assume that the new server remembers what the old server had done in the past.
Slides:
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.
Lecture 8, Part 3. This lecture's taped version should now be available.
Slides:
Chapter 5, Section 5.5 (pages 255-272)
Chapter 6, Section 6.3 (pages 347-362)
Slides:
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)
Slides: