OS. Operating Systems (22 core hours)
OS1. Operating system principles (core -- 2 hours)
Structuring methods and the layered model
Applications needs and the evolution of hardware/software techniques
Device organization
Interrupts: methods and implementations
Concept of user/system state and protection
OS2. Concurrency (core -- 6 hours)
States and state diagrams
Structures (ready list, process control blocks, and so forth)
Dispatching and context switching
The role of interrupts
Concurrent execution
The "mutual exclusion" problem
Deadlock: causes, conditions, prevention
Models and mechanisms (semaphores, monitors, rendezvous)
Producer-consumer problems
OS3. Scheduling and dispatch (core -- 3 hours)
Preemptive and nonpreemptive scheduling
Schedulers and policies
Processes and threads
Deadlines and real-time issues
OS4. Virtual memory (core -- 3 hours)
Review of physical memory and memory management hardware
Overlays, swapping, and partitions
Paging and segmentation
Memory mapped files
Placement and replacement policies
Working sets and thrashing
OS5. Device management (core -- 2 hours)
Characteristics of a serial or parallel device
Buffering strategies
Free lists and device layout
Servers and interrupts
Recovery from failures
OS6. Security and protection (core -- 3 hours)
Overview of system security
Security methods and devices
Protection, access, and authentication
Models of protection
Memory protection
Encryption
Recovery management
OS7. File systems and naming (core -- 3 hours)
File layout
Directories: contents and structure
Naming, searching, access, backups
Fundamental file concepts (organization, blocking, buffering)
Sequential files
Nonsequential files
OS8. Real-time systems
Process and task scheduling
Memory and disk management
Failures, risks, and recovery
Special concerns in real-time systems