Information for UCLA CS111, Winter 2014 --- 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.

The slides used in the lectures are available via links below for the particular week in which the lecture was given. Slides are available in both Powerpoint and PDF form. For slides that used animation, the PDF versions may be hard to deal with.

Final Exam

The final exam will be held at the scheduled period (Thursday March 20, 3-6 PM) in the usual lecture hall, Moore 100. I will be unable to proctor it myself, so the TAs will handle the proctoring.

The final exam will be substantially harder than the midterm. The questions on the final exam will require you to do more than remember and recite the definitions of terms or simply repeat basic procedures we discussed in class. They will involve application of knowledge from the class to new problems we have not explicitly discussed, either in the readings or in class.

There will be seven questions on the test, but you will only be required to answer any four of them, of your own choosing. The material covered by the final exam will span the entire ten weeks of the class. The test will cover both the lectures and the readings.

Here is a set of sample final exam questions, taken from past final exams given for this class. Suitable answers are included.

The TAs will have review sessions for the final exam during the scheduled lab hours this Friday.

TA and Labs

The TAs for the course are:

Vahab Pournagshband -- vahab@cs.ucla.edu

Tuan Le -- tuanle@cs.ucla.edu

Zhe Wen -- wenzhe@cs.ucla.edu

They will be responsible for all issues related to the lab projects and design problems. Questions on these should be directed to them. The lab page is here.

Week 10 (March 10 - March 16)

Lecture 17: Networking for Operating Systems

Assigned readings:

Chapter 7, section 7.1, pages 7-1 through 7-20. Here is a link to the PDF online version of Chapter 7.

Fallacies of Distributed Computing Explained, Amon Rotem-Gai-Oz.

Chapter 9, section 9.6.3. Here is a link to the PDF online version of Chapter 9.

Slides:

Lecture 17.

Lecture 18: Distributed Systems

Assigned readings:

Chapter 4, section 4.5, pages 184-195.

What Cloud Computing Really Means, Eric Knorr, Galen Gruman, Infoworld.

Slides:

Lecture 18.

Week 9 (March 3 - March 9)

NOTE: Since I fell behind last week, lecture 15 is being given on Tuesday, March 4 instead of last Thursday. The same readings are assigned here as were previously assigned. There will be a quiz before the lecture on Tuesday on those readings.

Lecture 15: File Systems

Assigned readings:

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

Slides:

Lecture 15.

Lecture 16: File Systems: Naming and Reliability

Assigned readings:

Chapter 2, section 2.5. (pages 91-112)

Chapter 8, Sections 8.1.1 (pages 8-3 to 8-6), 8.2.1 (pages 8-8 to 8-13), and 8.5.4 (pages 8-40 to 8-51). Here is a link to the PDF online version of Chapter 8.

Slides:

Lecture 16.

Week 8 (February 24 - March 2)

Lecture 14: Devices and Device Drivers

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

Lecture 15:

As announced at the end of the last class, since I have fallen a full lecture behind, the class for Thursday, Feb. 27 will be the lecture on device drivers originally planned for Tuesday, Feb. 25. Further, there will be no quiz on Thursday, since the covered material was already handled in the Tuesday quiz. The lecture originally scheduled for Thursday, and the quiz associated with it, will be given on Tuesday, March 4.

Week 7 (February 17 - February 23)

Lecture 12: Memory Management

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

Lecture 13: Virtual Memory and Paging

Slides:

Lecture 13.

Assigned readings:

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

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

Week 6 (February 10 - February 16)

Lecture 10: Operating System Security

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

Lecture 11: Security for Operating Systems: Cryptography, Authentication, and Protecting OS Resources

Assigned readings:

Chapter 11, section 11.2, pages 11-28 to 11-36.

Chapter 11, section 11.4, pages 11-49 to 11-54.

Chapter 11, section 11.6, pages 11-72 to 11-80.

These readings are part of the online textbook and can be found here.

Slides:

Lecture 11.

Week 5 (February 3 - February 9)

The midterm will be on Thursday, February 6, so there is only one lecture for this week.

Lecture 9: Synchronization and Deadlock

Assigned readings:

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

Slides:

Lecture 9.

Week 4 (January 27 - February 2)

Slides:

Lecture 7: Process Communications and Concurrency

Assigned readings:

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

Slides:

Lecture 7.

Lecture 8: Synchronization, Critical Sections, and Concurrency

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.

Week 3 (January 20 - January 26)

Lecture 5: Processes

Assigned readings:

Chapter 5, Section 5.5 (pages 255-272).

Slides:

Lecture 5.

Lecture 6: Scheduling

Assigned readings:

Chapter 6, Section 6.3 (pages 347-362).

Slides:

Lecture 6.

Week 2 (January 13 - January 19)

Lecture 3: Hardware Issues for Operating Systems

Assigned readings:

Chapter 2, Section 2.1 (pages 43-60)

Slides:

Lecture 3.

Lecture 4: Modularity and Virtualization

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.

Week 1 (January 6 - January 12)

Lecture 1: Introduction

Assigned readings:

Chapter 1 (pages 1-40).

Slides:

Lecture 1.

Lecture 2: Basic Operating Systems Concepts

Assigned readings:

Chapter 1 (pages 1-40). That's the same reading as for lecture 1. I assigned it for that lecture by mistake. The quiz preceding lecture 2 will be on this reading.

Slides:

Lecture 2.