Information for UCLA MS On-Line CS111, Spring 2013 --- Operating System Principles

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.

TA and Labs

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.

FINAL EXAM

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.

Week 10 (June 3 - June 9)

Lecture 18:

Assigned readings:

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.

Slides:

Lecture 18, Part 1.

Lecture 18, Part 2.

Lecture 18, Part 3.

Lecture 18, Part 4.

Lecture 19:

Assigned readings:

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.

Slides:

Lecture 19, Part 1.

Lecture 19, Part 2.

Lecture 19, Part 3.

Lecture 19, Part 4.

Week 9 (May 27 - June 2)

Lecture 16:

Assigned readings:

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.

Slides:

Lecture 16, Part 1.

Lecture 16, Part 2.

Lecture 16, Part 3.

Lecture 17:

Assigned readings:

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.

Slides:

Lecture 17, Part 1.

Lecture 17, Part 2.

Lecture 17, Part 3.

Week 8 (May 20 - May 26)

Lecture 14:

Assigned readings:

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.

Slides:

Lecture 14, Part 1.

Lecture 14, Part 2.

Lecture 14, Part 3.

Lecture 15:

Assigned readings:

Chapter 7, section 7.1. Here is a link to the PDF online version of Chapter 7.

Slides:

Lecture 15, Part 1.

Lecture 15, Part 2.

Lecture 15, Part 3.

Week 7 (May 13 - May 19)

Lecture 12:

Assigned readings:

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.

Slides:

Lecture 12, Part 1.

Lecture 12, Part 2.

Lecture 12, Part 3.

Lecture 12, Part 4.

Lecture 13:

Assigned readings:

Chapter 6, section 6.1 (pages 300-321), section 6.3.4 (pages 360-362)

Slides:

Lecture 13, Part 1.

Lecture 13, Part 2.

Lecture 13, Part 3.

Lecture 13, Part 4.

Week 6 (May 6 - May 12)

Lecture 10:

Assigned readings:

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).

Slides:

Lecture 10, Part 1.

Lecture 10, Part 2.

Lecture 10, Part 3.

Lecture 11:

Assigned readings:

Chapter 5, Section 5.4 (pages 242-255).

Chapter 6, section 6.2.2-6.2.9 (pages 323-347).

Slides:

Lecture 11, Part 1.

Lecture 11, Part 2.

Lecture 11, Part 3.

Lecture 11, Part 4.

Week 5 (April 29 - May 5)

Lecture 9:

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.)

Assigned readings:

Chapter 5, Section 5.2.5 (pages 221-222), Chapter 5, Section 5.6 (pages 273-284)

Slides:

Lecture 9, Part 1.

Lecture 9, Part 2.

Lecture 9, Part 3.

Lecture 9, Part 4.

MIDTERM EXAM

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.

Lecture 8:

Week 4 (April 22 - April 28)

Slides:

Lecture 7:

Assigned readings:

Chapter 5, Section 5.2 (pages 210-230), Chapter 4, Section 4.2 (pages 167-173)

Slides:

Lecture 7, Part 1.

Lecture 7, Part 2.

Lecture 7, Part 3.

Lecture 8:

Assigned readings:

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.

Slides:

Lecture 8, Part 1.

Lecture 8, Part 2.

Lecture 8, Part 3. This lecture's taped version should now be available.

Week 3 (April 15 - April 21)

Slides:

Lecture 5:

Assigned readings:

Chapter 5, Section 5.5 (pages 255-272)

Slides:

Lecture 5, Part 1.

Lecture 5, Part 2.

Lecture 5, Part 3.

Lecture 6:

Assigned readings:

Chapter 6, Section 6.3 (pages 347-362)

Slides:

Lecture 6, Part 1.

Lecture 6, Part 2.

Lecture 6, Part 3.

Week 2 (April 8 - April 14)

Slides:

Lecture 3:

Assigned readings:

Chapter 2, Section 2.1 (pages 43-60)

Slides:

Lecture 3, Part 1.

Lecture 3, Part 2.

Lecture 3, Part 3.

Lecture 4:

Assigned readings:

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:

Lecture 4, Part 1.

Lecture 4, Part 2.

Lecture 4, Part 3.

Week 1 (April 1 - April 7)

Slides:

Lecture 1:

Assigned readings:

No reading assigned for lecture 1.

Slides:

Lecture 1, Part 1.

Lecture 1, Part 2.

Lecture 1, Part 3.

Lecture 2:

Assigned readings:

Chapter 1 (pages 1-40). Remember, before you start viewing Lecture 2, you will need to perform a short quiz based on this reading. It will be easy if you've read and understood the material, and probably hard if you haven't.

Slides:

Lecture 2, Part 1.

Lecture 2, Part 2.

Lecture 2, Part 3.