Lecture Materials
Slides, readings, and related lecture material will appear here gradually throughout the semester. The bulk of these materials are copyrighted by the authors of the course textbook, and are to be used for CPSC 457 purposes only.
Week 1: Introduction and Overview
Course overview. Admin details.
General overview of operating systems and basic concepts.
Chapter 1.
Slides:
PPT slides (3.4 MB)
PDF slides (1.5 MB)
Reading: Chapter 1 (sections 1.1 to 1.14)
Week 2: Operating System Structures
OS organization. OS services. System calls. User interface.
Command interpreter shell. OS design and implementation.
Virtual machines.
Chapter 2.
Slides:
PPT slides (4.5 MB)
PDF slides (2.6 MB)
Reading: Chapter 2 (sections 2.1 to 2.12)
Example:
smallsh.h
smallsh.c
userinput.c
processline.c
runcommand.c
Makefile
Week 3: Processes
Processes. Process attributes. Process control block.
Process state. Process scheduling. Process operations.
Inter-process communication.
Chapter 3.
Slides:
PPT slides (4.6 MB)
PDF slides (1.8 MB)
Reading: Chapter 3 (sections 3.1 to 3.7)
Examples:
lister.c
sleepfun.c
canada.c
votes.txt
votes.c
votes.sh
howmanyfiles.sh
Week 4: Threads
Threads concept. Threads versus processes. P-Threads.
Multi-threaded applications. Threading issues. OS examples.
Chapter 4.
Slides:
PPT slides (2.5 MB)
PDF slides (480 KB)
Reading: Chapter 4 (sections 4.1 to 4.5)
Examples:
summer1.c
summer2.c
summer3.c
summer4.c
summer5.c
Week 5: CPU Scheduling
Short-term scheduling. Long-term scheduling.
Basic concepts. Scheduling goals. Scheduling mechanisms.
Priority scheduling. Size-based scheduling. OS examples.
Chapter 5.
Slides:
PPT slides (4.3 MB)
PDF slides (1.5 MB)
Reading: Chapter 5 (sections 5.1 to 5.3 and 5.5 to 5.8)
Week 6: Concurrency and Synchronization
Concurrent processes. Contention. Synchronization issues.
Critical sections.
Chapter 6.
Slides:
PPT slides (2.5 MB)
PDF slides (620 KB)
Reading: Chapter 6 (sections 6.1 to 6.8, plus 6.10)
Examples:
banking.c
deposits.txt
withdrawals.txt
Week 7: Deadlocks
Deadlock. Progress. Safety. Correctness.
Deadlock prevention. Deadlock avoidance.
Deadlock detection and recovery.
Chapter 7. Midterm exam.
Slides:
PPT slides (2.4 MB)
PDF slides (610 KB)
Reading: Chapter 7 (sections 7.1 to 7.8)
Examples:
shuffler0.c
shuffler1.c
shuffler2.c
shuffler3.c
shuffler4.c
Week 8: Main Memory
Memory layout. Memory management. Hardware and software
support for addressing. Contiguous allocation.
Fragmentation issues. Paging. TLBs. Segmentation. Segmentation versus paging.
Chapter 8.
Slides:
PPT slides (5.6 MB)
PDF slides (2.3 MB)
Reading: Chapter 8 (sections 8.1 to 8.8)
Week 9: Virtual Memory
Virtual memory systems. Memory hierarchy.
Hardware and software support. Page tables. Page faults.
TLBs.
Chapter 9.
Slides:
PPT slides (6.4 MB)
PDF slides (2.4 MB)
Reading: Chapter 9 (sections 9.1 to 9.11)
Example:
memfun.c
Week 10: File System Interface
File system concepts. File operations. Files. Directories.
Basic storage: disk partitions. File management issues. Mounting.
Sharing. Protection.
Chapter 10.
Slides:
PPT slides (3.5 MB)
PDF slides (1.1 MB)
Reading: Chapter 10 (sections 10.1 to 10.7)
Week 11: File System Implementation
File system design issues. Original Unix file system.
Unix fast file system. Inodes. Caching. File system optimization.
Chapter 11.
Slides:
PPT slides (6.1 MB)
PDF slides (1.9 MB)
Reading: Chapter 11 (sections 11.1 to 11.8 plus 11.10)
Week 12: Storage and I/O Systems
Storage systems. Disk scheduling.
Speed. Capacity. Reliability. RAID systems.
Storage Area Networks.
Chapter 12.
Slides:
PPT slides (5.0 MB)
PDF slides (2.0 MB)
Reading: Chapter 12 (sections 12.1 to 12.5, plus 12.7)
Week 13: Advanced Topics
Selected topics: computer system security, multimedia systems, real-time systems, OS research. Course wrap up and review.