CS 111 Course Overview

Operating Systems Principles
Peter Reiher
Description of the Course
Lecture, four hours; laboratory, two hours; outside study, nine hours. Introduction to operating systems design and evaluation. Computer software systems performance, robustness, and functionality. Kernel structure, bootstrapping, input/output (I/O) devices and interrupts. Processes and threads; address spaces, memory management, and virtual memory. Scheduling, synchronization. File systems: layout, performance, robustness. Distributed systems: networking, remote procedure call (RPC), asynchronous RPC, distributed file systems, transactions. Protection and security. Exercises involving applications using, and internals of, real-world operating systems. Letter grading.

View Course Introduction

Background students will need
Although prerequisites are not enforced for graduate students, it is strongly recommended that each student has taken courses equivalent to Introduction to Computer Science II, Introduction to Computer Organization and Software Construction Laboratory.

About the Instructor
Peter Reiher: Dr Reiher is an adjunct associate professor in the Computer Science Department at UCLA and leads the Laboratory for Advanced Systems Research (LASR). His research interests include distributed operating systems, active networks, computer security, the use of optimistic methods in computing, and parallel discrete event simulation.

The textbook for this class will be Principles of Computer System Design, by Jerome H. Saltzer and M. Frans Kaashoek. The first 6 chapters of this book are in the printed volume, while the last 5 are only available online. Reading assignments from these later chapters will include a URL to access them.

Week 1
Lecture 1: Introduction
Lecture 2: Operating System Basics
Week 2
Lecture 3: Hardware Issues for Operating Systems
Lab 1A due
Lecture 4: Modularity and Virtualization
Week 3
Lecture 5: Processes
Weensy OS 1 due
Lecture 6: Scheduling
Week 4
Lab 1B due
Lecture 7: Process Communications and Concurrency
Lab 1C due
Lecture 8: Critical Sections and Synchronization
Week 5
Lecture 9: High Level Synchronization and Deadlock
No second lecture this week due to the midterm
Week 6
Lab 2 due
Lecture 10: Memory Management and Virtual Memory
Lecture 11: Device I/O and Drivers
Week 7
Lecture 12: File Systems Design
Lab 3 due
Lecture 13: File System Implementation
Week 8
Lecture 14: File System Naming and Robustness
Lecture 15: Networked and Distributed File Systems
Weensy OS 2 due
Week 9
Lecture 16: Networking and Operating Systems
Lecture 17: Distributed Operating Systems
Week 10
Lab 4 due
Lecture 18: Operating System Security: Basic Concepts and Cryptography
Lecture 19: Operating System Security: Problems, Solutions, and Privacy
Design project due
View Demo for this class.