CPSC 457: Operating Systems

Professor Carey Williamson

Fall 2008

Course Overview

This course introduces the key principles underlying modern computer operating systems. The first part of the course (about 30%) will cover processes, threads, and CPU scheduling. The second part (about 20%) will discuss issues related to concurrency, synchronization, and deadlock handling. The third part of the course (about 25%) will focus on memory, memory management, and virtual memory systems. The final part of the course (about 25%) will discuss file, I/O, and storage systems.

In general, we will cover about one chapter of the textbook each week, for the first 10 weeks. We will then jump around a bit in the book, picking and choosing the final topics that we cover in the last 2 weeks or so.

Course Syllabus and Schedule

Week 1: Introduction and Overview

Course overview. Admin details. General overview of operating systems and basic concepts. Chapter 1.

Week 2: Operating System Structures

OS organization. OS services. System calls. User interface. Shell command interpreter. OS design and implementation. Virtual machines. Chapter 2.

Week 3: Processes

Process concept. Process state. Process management. Chapter 3.

Week 4: Threads

Threads concept. Threads versus processes. P-Threads. Multi-threaded applications. Chapter 4.

Week 5: Scheduling

Short-term CPU scheduling. Longer-term scheduling. Priority scheduling. Size-based scheduling. Chapter 5.

Week 6: Concurrency and Synchronization

Concurrent processes. Contention. Synchronization issues. Critical sections. Chapter 6.

Week 7: Deadlocks

Deadlock. Livelock. Progress. Correctness. Deadlock detection and prevention. Chapter 7.

Week 8: Memory Systems

Memory layout. Memory management. Hardware and software support for addressing. Segmentation versus paging. Chapter 8.

Week 9: Virtual Memory

Virtual memory systems. Memory hierarchy. Hardware and software support. Page tables. Page faults. TLBs. Chapter 9.

Week 10: File System Interface

File system concepts. File operations. Basic storage. File management issues. Chapter 10.

Week 11: File System Implementation

File system design issues. Original Unix file system. Unix fast file system. Inodes. Caching. File system optimization. Chapter 11.

Week 12: Storage and I/O Systems

Storage systems. Speed. Capacity. Reliability. RAID systems. Chapter 12. Input/output. Memory-mapping. Peripheral devices. Networked I/O. Storage Area Networks. Chapter 13.

Week 13: Advanced Topics

Selected topics: computer system security, multimedia systems, real-time systems, OS research. Wrap up and review.