Course Outline

Warning: This is the originally approved course outline.
However, I expect we may go through some of it faster than other parts of it.
In many ways, this outline is an experiment. Let's see how well it works.

Topic Outline:
  1. Week 1: Overview
    • Introduction and History
    • Operating-System Structures
    • Processes and Threads with Unix examples

  2. Week 2: Process Management
    • Process Scheduling
    • Interprocess Communication
    • Threads and Scheduling
    • Examples in Unix (ps, pid)

  3. Week 3: Process Management, continued
    • Process Synchronization and Examples
    • Examples in Unix (fork, exec, wait)
    • Deadlocks

  4. Week 4: Memory Management
    • Main Memory, Cache
    • Paging and Segmentation
    • Virtual Memory
    • Related Unix System Functions (cmap)

  5. Week 5: Storage Management with Input/Output
    • File System Interface and Implementation
    • Input/Output Systems

  6. Week 6: Unix File Systems
    • Unix Memory Layout
    • Passing Parameters in Unix
    • Unix File Systems, including permissions
    • File directories (inodes, links)

  7. Week 7: Unix File Systems, continued
    • Unix I/O (read, write, select, poll)
    • File Redirection
    • Unix pipes

  8. Week 8: Protection and Security
    • Goals and Principles of Protection
    • Implementation, with Examples from Unix
    • Security Threats
    • Authentication
    • Firewalls

  9. Week 9: Distributed System Design and Structure
    • Types of Distributed Operating Systems
    • Networks: Structure and Topology
    • Communication: Structure and Protocols

  10. Week 10: Distributed System Design and Structure
    • Communication: Structure and Protocols, continued
    • Design Issues
    • Examples of Unix in Distributed Systems

  11. Week 11: Distributed File Systems
    • Naming and Transparency
    • Remote File Access
    • Stateless versus Stateful Service
    • Examples: AFS and NFS

  12. Week 12: Distributed Coordination
    • Event Ordering and Mutual Exclusion
    • Atomicity and Concurrency Control
    • Deadlock Handling
    • Election and Agreement Algorithms

  13. Week 13: Unix (BSD): History and Case Study
    • Design Principles
    • Programmer and User Interface
    • Processes versus Threads in Unix
    • Interprocess Communication
    • Unix Shell Script Examples

  14. Week 14: Unix Synchronization and Interprocess Communication
    • Signals: sending, blocking, catching, ignoring
    • Semaphores
    • Message Queues
    • Sockets (IPC)
    • More Unix Shell Script Examples

  15. Week 15: Linux: History and Case Study
    • History and Design Principles
    • Kernel Modules
    • Process Management and Scheduling
    • File Systems and Input/Output

  16. Week 16: Final Exam