Information for UCLA CS111, Fall 2015 --- 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.

TA and Labs

The TAs for the course will be announced soon.

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

Final Exam

The final exam will be held in 3400 BH on Friday, December 11, from 3-6 PM. The final is open book, open notes. You may use a laptop computer to take the final and turn in your answers via flash drive in Word, PDF, or text format. You may use the Internet to access the slides and readings on line, but may not use it to communicate to anyone during the test. (If you are caught communicating via your computer to someone during the test, you will receive a zero grade on the test.) The final is cumulative and any material covered in any of the slides or any of the readings may appear. The questions on the final will require application of knowledge from the class to new problems we have not discussed before. The final exam is likely to be significantly harder than the midterm exam was. Here is a set of sample questions similar in style to those that will appear on the final. Reasonable answers are included with the questions.

Week 10 (November 26 - December 4)

We are on to a Tuesday/Thursday schedule for the last week of the quarter.

Lecture 17: Security and Operating Systems

Assigned readings:

Chapter 11, Overview and section 11.1-11.2, pages 11-4 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 17.

Lecture 17, PDF version.

Lecture 16: Distributed Systems

Assigned readings:

Chapter 4, section 4.5, pages 184-195.

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

Slides:

Lecture 16.

Lecture 16, PDF version.

Week 9 (November 19 - November 25)

Having fallen further behind, Lecture 14 will be given on the 19th. So only one new lecture and associated readings are assigned for this week.

Lecture 15: 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 15.

Lecture 15, PDF version.

Week 8 (November 12 - November 18)

Lecture 14: File Systems: Allocation Issues, Naming, and Performance

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. This chapter discusses reliability issues, a subject I will not have time to cover in class, so I recommend you read this material carefully.

Slides:

Lecture 14.

Lecture 14, PDF version.

Lecture 13: File Systems: Introduction

Assigned readings:

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

Slides:

Lecture 13.

Lecture 13, PDF version.

Week 7 (November 5 - November 11)

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

Lecture 12, PDF version.

Lecture 11: Virtual Memory and Paging

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.

Lecture 11 in PDF.

Week 6 (October 29 - November 4)

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

Lecture 10 in PDF.

Lecture 9: Synchronization and Deadlocks

Assigned readings:

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

Slides:

Lecture 9.

Lecture 9, PDF version.

Assigned readings:

Week 5 (October 22 - 28)

The midterm exam will be held in class on Tuesday, October 27. It will cover all material in the lectures and readings, through Lecture 8. Material presented ONLY in the labs will not appear on the midterm. There will definitely be questions from the readings, including questions on material I did not lecture on, so be sure to study both your lecture notes and the assigned readings. The midterm will be closed book, closed notes.

Here are the answers to the sample midterm exam.

Here is a sample midterm, similar in style to the one you will be given. The sample midterm covers a slightly different set of material than we covered this quarter, so there might be some questions on it that are not in the material your midterm will cover. But these are the kinds of questions you will see. I will post the answers to the sample midterm by the end of the week.

Since the midterm will be held on Tuesday, October 27, only one lecture will be given this week.

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.

Lecture 8, PDF version.

Week 4 (October 15 - 21)

Since I have fallen a full lecture behind, I will only assign one lecture and associated reading for the week. We will, of course, have regular class sessions, to allow me to catch up.

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 7, PDF version.

Week 3 (October 8 - 14)

Lecture 5: Processes

Assigned readings:

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

Slides:

Lecture 5.

Lecture 5, PDF version.

Lecture 6: Scheduling

Assigned readings:

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

Slides:

Lecture 6.

Lecture 6, PDF version.

Week 2 (October 1 - 7)

Lecture 3: Hardware Issues for Operating Systems

Assigned readings:

Chapter 2, Section 2.1 (pages 43-60)

Slides:

Lecture 3.

Lecture 3, PDF version.

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.

Lecture 4, PDF version.

Week 1 (September 24 - 30)

Lab1A is due on October 7. (Unless TAs instruct you otherwise.) Here is the description of the lab. The TAs will discuss this lab and other project issues at the recitation sections for this week. They might also make other materials for Lab 1 available to you.

Lecture 1: Introduction

Assigned readings:

No readings assigned for lecture 1.

Slides:

Lecture 1.

Lecture 1, PDF version.

Lecture 2: Basic Operating Systems Concepts

Assigned readings:

Chapter 1 (pages 1-40).

Slides:

Lecture 2.

Lecture 2, PDF version.