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

All assigned readings will be made available by web links. The textbook is Operating Systems: Three Easy Pieces, by Remzi Arpaci-Dusseau and Andrea Arpaci-Dusseau. This is an on-line textbook, with links to the various chapters towards the bottom of the page, but the direct links to the assigned chapters will be provided on this page. You will not need to pay anything to use this textbook.

There wll be supplemental readings from Principles of Computer System Design, by Jerome Saltzer and Frans Kaashoek. All readings from this book will be available on-line, but only from UCLA IP addresses. Use the UCLA VLAN to connect into UCLA's network if you need to access them from another place. You do not need to pay for this textbook, either There will also be other web readings.

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 are:

Muhammad Mehdi

Diyu Zhou

Zhaoxing Bu

Jungbeom Lee

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 at the scheduled time for this class period, 11:30AM-2:30PM on Monday, December 5, in our regular classroom. This will be an open book, open notes test. You may write your answers on your laptop computer and hand in the test via flash drive, or you may hand write your answers on paper. If you hand it in electronically, it can be in plain text, PDF, or Word format. You may have any materials you want to consult loaded onto your laptop, but are not permitted to use the Internet during the test. We will be proctoring the test and watching for Internet use.

The test is cumulative and will cover all material in any readings assigned and all material discussed in lectures. Anything covered only as part of a project will not be on the test, but if such material was also in the readings or lectures, it could appear. The test questions will be oriented towards application of knowledge from the class, rather than simply understanding terms and concepts that were presented. Here is a sample final exam with the kind of questions you might expect to see on the final. Example acceptable answers are also included. You will not be required to write new code for the final, but it is possible you might need to analyze code I give you and correct mistakes or make small alterations to it.

Here are the Edison tutorials that can help you work on project 4.

Week 10 (November 24 - December 2)

Project 4 is due on Sunday, December 11, at 11:59 PM. (Note the change in due date.) Here is the description of lab 4. The server for project 4 is now available.

Lecture 17: Remote Data

Lecture 17 Quiz.


Lecture 17.

Lecture 17, PDF version.

Assigned readings:

Arpaci-Dusseau Chapter 48

Arpaci-Dusseau Chapter 49

ACID semantics

Lecture 18: Distributed Computing

Lecture 18 Quiz.

Since I am a full lecture behind, no new slides will be assigned for lecture 18. I will lecture on the slides for lecture 17 on the last day of class. You are still responsible for the lecture 18 readings, however, which might appear on the final exam.

Assigned readings:

Arpaci-Dusseau Appendix B

Arpaci-Dusseau Chapter 10

Multiprocessor systems

Eventual Consistency

Clustering concepts

Horizontally Scaled Systems

Week 9 (November 17 - November 23)

Project 3B is due on Monday, November 28. Here is the description of lab 3B.

Lecture 15: Security and Privacy

Lecture 15 Quiz.


Lecture 15.

Lecture 15, PDF version.

Assigned readings:

Introduction to operating system security

Authentication for operating systems

Access Control


Lecture 16: Distributed Systems

Lecture 16 Quiz.


Lecture 16.

Lecture 16, PDF version.

Assigned readings:

Distributed Systems: Goals and Challenges

Arpaci-Dusseau Chapter 47

REST-ful interfaces


Distributed Consensus

Distributed Systems Security

Week 8 (November 10 - November 16)

Project 3A (File System Dump) is due on Friday, November 18. Here is the description of lab 3A.

Lecture 13: File Systems

Lecture 13 Quiz.


Lecture 13.

Lecture 13, PDF version.

Assigned readings:

Arpaci-Dusseau, Chapter 39.

Arpaci-Dusseau, Chapter 40.

File formats

Object storage (only history and architecture sections of page

Key-value stores (only Introduction and types sections of page)

FUSE (only Introduction, history, and uses sections of page)

The FAT file system

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

Lecture 14 Quiz.


Lecture 14.

Lecture 14, PDF version.

Assigned readings:

Arpaci-Dusseau, Chapter 41.

Arpaci-Dusseau, Chapter 42.

Arpaci-Dusseau, Chapter 43.

Arpaci-Dusseau, Chapter 44.

Arpaci-Dusseau, Chapter 45.

Arpaci-Dusseau, Appendix I.6-10.

Week 7 (November 3 - November 9)

Lecture 11: Performance Measurement and Analysis

Lecture 11 Quiz.


Lecture 11.

Lecture 11, PDF version.

Assigned readings:

Measuring Operating System Performance

Load and Stress Testing

Lecture 12: Persistent Storage Devices

Lecture 12 Quiz.


Lecture 12.

Lecture 12, PDF version.

Assigned readings:

Arpaci-Dusseau, Chapter 33-33.6.

Arpaci-Dusseau, Chapter 35.

Device Drivers Classes and Services

Arpaci-Dusseau, Chapter 36.

Arpaci-Dusseau, Chapter 37.

Arpaci-Dusseau, Chapter 38.

Dynamically Loadable Drivers

Week 6 (October 27 - November 2)

No new project is due this week. We changed project 2 from three parts to two parts this quarter, so there is no project 2C.

I have fallen a full lecture behind. Therefore, I will be giving the already- assigned lecture 9 on Thursday, October 27. Lecture 10 will be given on Tuesday, November 1. Therefore, there is no quiz due on the 27th and no reading assigned for that day. The quiz for lecture 10 must be completed before the start of the lecture on Tuesday, November 1, as usual for quizzes in the class.

Lecture 10: Deadlocks - Problems and Solutions

Lecture 10 Quiz.


Lecture 10.

Lecture 10, PDF version.

Assigned readings:

Arpaci-Dusseau, Chapter 32.

Deadlock Avoidance

Health Monitoring and Recovery


Java synchronization

Java intrinsic locks

Week 5 (October 20 - October 26)

Project 2B (Complex critical sections) is due on Saturday, October 29. Here is the description of lab 2B.

Lecture 9: Semaphores and Locks for Synchronization

Lecture 9 Quiz.


Lecture 9.

Lecture 9, PDF version.

Assigned readings:

Arpaci-Dusseau, Chapter 29.

Arpaci-Dusseau, Chapter 30.

Arpaci-Dusseau, Chapter 31.




The midterm will be held in class on Tuesday, October 25. More details on the midterm will be posted here by the Friday before the test.

Week 4 (October 13 - October 19)

Project 2A (Atomic operations) is due on Wednesday, October 19. Here is the description of lab 2A.

Lecture 7: Threads, IPC, and Synchronization

Lecture 7 Quiz. Note: we are switching to allowing only one attempt per quiz, so be prepared before taking the quiz.


Lecture 7.

Lecture 7, PDF version.

Assigned readings:

Arpaci-Dusseau, Chapter 17. This chapter should have been assigned with Lecture 5. The material in the chapter will not appear on the lecture 7 quiz, but may appear on the midterm and final exams.

Interprocess Communications

Named pipes. This is a web page with multiple links off it. You are to read the parts labeled 6.3.1 through 6.3.5.




Arpaci-Dusseau, Chapter 25

Arpaci-Dusseau, Chapter 26

Arpaci-Dusseau, Chapter 27

User mode threads

Lecture 8: Mutual Exclusion and Asynchronous Completion

Lecture 8 Quiz. Note: we are switching to allowing only one attempt per quiz, so be prepared before taking the quiz.


Lecture 8.

Lecture 8, PDF version.

Assigned readings:

Arpaci-Dusseau, Chapter 28

Week 3 (October 6 - October 12)

Project 1B (Networking) is due on Wednesday, October 12.

Here is the description of project 1B.

Lecture 5: Memory Management

Lecture 5 Quiz

Assigned readings:

Arpaci-Dusseau, Chapter 12

Arpaci-Dusseau, Chapter 13

Arpaci-Dusseau, Chapter 14

Arpaci-Dusseau, Chapter 15

Arpaci-Dusseau, Chapter 16


Lecture 5.

Lecture 5, PDF version.

Lecture 6: Swapping, Paging, and Virtual Memory

Lecture 6 Quiz

Assigned readings:

Arpaci-Dusseau, Chapter 18

Arpaci-Dusseau, Chapter 19

Arpaci-Dusseau, Chapter 21

Arpaci-Dusseau, Chapter 22

Working Set Replacement


Lecture 6.

Lecture 6, PDF version.

Week 2 (September 29 - October 5)

Project 1A (I/O and IPC) is due on Wednesday, October 5.

Here is the description of project 1A.

Lecture 3: Processes, Execution, and State

Lecture 3 Quiz

Assigned readings:

Arpaci-Dusseau, Chapter 3

Arpaci-Dusseau, Chapter 4

Arpaci-Dusseau, Chapter 5

Arpaci-Dusseau, Chapter 6

Linux man page on kill(2)

Linux man page on signal(2)


Lecture 3.

Lecture 3, PDF version.

Lecture 4: Scheduling

Lecture 4 Quiz

Assigned readings:

Arpaci-Dusseau, Chapter 7

Arpaci-Dusseau, Chapter 8

Real time scheduling


Lecture 4.

Lecture 4, PDF version.

Week 1 (September 22 - 28)

Project 0 (the warmup) is due on Wednesday, September 28.

Lecture 1: Introduction

Assigned readings:

Arpaci-Dusseau, Chapter 1

Arpaci-Dusseau, Chapter 2

Saltzer, Chapter 1-1.3. Available from UCLA networks only.

Interface stability


Lecture 1.

Lecture 1, PDF version.

Lecture 2: Basic Operating Systems Concepts


Assigned readings:

Saltzer, Sections 1.4-1.5

Dynamic loading

Application Programming Interfaces

Application Binary Interfaces



Lecture 2.

Lecture 2, PDF version.