Introduction; functions of an operating system; history
Notion of process; process control and pre-emption; the life of a process;
scheduling problems; low and high level scheduling
Scheduling policies for batch, multiprogramming, and timesharing systems
Elementary queueing theory and applications to scheduling and dimensioning
Concurrency control: determinism and determinacy; randomness and
non-determinism; competition/exclusion and cooperation/synchronization
Deadlocks: conditions, detection, prevention, and recovery
Concurrency control mechanisms: busy wait, memory interlock,
semaphores, monitors, rendez-vous, etc.
TEST #1
Memory management: allocation, relocation, segmentation
The memory hierarchy (including quick overview of caching);
paging and page replacement algorithms; working sets and
allocation policies
Disk allocation and scheduling
TEST #2
File systems, logical and physical structures
General resource management
Protection and security; capability-based operating systems
Unifying ideas in operating systems: segments (Multics),
files (Unix), capabilities (Hydra)
FINAL TEST