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.

Syllabus
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
Issues
    Design project due
View Demo for this class.