Course Outline

Topic Outline:
  1. Week 1: Overview
    • Introduction and History of OS
    • Using Unix
    • Operating-System Structures
    • Unix: fork, exec, wait
    • Processes and Threads with Unix examples

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

  3. Week 3: Process Management, continued
    • Process Synchronization and Examples
    • More Examples in Unix: fork, exec, wait, signal,
    • Deadlocks: Avoidance, Prevention, Detection, Recovery

  4. Week 4: Memory Management
    • Main Memory, Cache
    • Paging and Segmentation
    • Virtual Memory
    • Unix System Library Commands and Arguments
    • Related Unix System Functions: ls, cmap,

  5. Week 5: Storage Management with Input/Output
    • Input/Output Systems
    • Devices: Input, Output
    • Unix: select, poll, cat
    • File System Interface and Implementation
    • Directories, Links, and File Types

  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
    • Linux
    • Unix I/O: read, write, select, poll, stty
    • File Redirection
    • Unix pipes, shells

  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
    • Unix: Signals, Shells, Timing

  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; Real-Time Systems
    • 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 Week