UCLA Computer Science 111, fall 2023.
Operating Systems Principles
Instructor: Paul Eggert.
  See Bruin Learn
  for office hours.
Teaching assistants, with contact information and office hours
published on Bruin Learn:
Discussion sections:
- Lab 1A. F 10:00. Geology 4660 (Yadi Cao)
 
- Lab 1B. F 12:00. Broad Art Center 2100A (Brian Roysar)
 
- Lab 1C. F 14:00. Public Affairs 2270 (Yadi Cao)
 
- Lab 1D. F 14:00. Rolfe 3135 (Brian Roysar)
 
Lecture, 4 hours; laboratory, 2 hours; outside study, 9 hours.
Prerequisites: Computer Science 32, 33, and 35L.
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.
Related Computer
Science Curricula 2013 (CS2013) knowledge units:
 - OS/Overview of Operating Systems
 
 - OS/Operating System Principles
 
 - OS/Concurrency
 
 - OS/Scheduling and Dispatch
 
 - OS/Memory Management
 
 - OS/Security and Protection
 
 - OS/Virtual Machines
 
 - OS/Device Management
 
 - OS/File Systems
 
 - OS/System Performance Evaluation
 
 - PD/Communication and Coordination
 
 - PD/Distributed Systems
 
 - IAS/Foundational Concepts in Security
 
 - IAS/Threats and Attacks
 
 - NC/Networked Applications
 
 - SF/Cross-Layer Communications
 
 - SF/Resource Allocation and Scheduling
 
 - SF/Virtualization and Isolation
 
 - SF/Reliability through Redundancy
 
Related IEEE
    Software Engineering Body of Knowledge (SWEBOK) 3.0 topics:
- 3.4.10. Concurrency primitives
 
- 3.4.14. Performance analysis and tuning
 
- 3.4.15. Platform standards
 
- 13.2. Abstraction
 
- 13.8. Basic concept of a system
 
- 13.11. Operating system basics
 
- 13.13. Network communication basics
 
Related Computer
Engineering Curricula 2016 (CE2016) knowledge units:
  - CE-CAL-9. Scheduling algorithms
 
  - CE-SEC-3. Data security and integrity
 
  - CE-SRM-3. Managing system resources
 
  - CE-SRM-4. Real-time operating system design
 
  - CE-SRM-6. Support for concurrent processing
 
  - CE-SRM-8. Support for virtualization
 
  - CE-SWD-11. Event-driven and concurrent programming
 
  - CE-SWD-12. Using application programming interfaces
 
These curriculum guidelines evolve; see Computing
Curricula 2020 Paradigms for Global Computing Education (CC2020).