The+THE

Semaphores multi-program introduced VM pages Ring levels / layers proven correct no IPC

Overview

 * Not a multiaccess system
 * Designers proved system correctness
 * Separation of virtual and physical memory. Paged.
 * Limit number of possible system states so that it can be exhaustively tested.
 * Time is logical, not physical
 * I think this means the authors are only concerned with relative progress
 * Explicit mutual synchronization of processes
 * The authors found that 2 main use cases arose: mutual exclusion and private semaphores. A semaphore is private if only one process performs "P" on the semaphore; many processes may perform "V". A use would be for a process to optionally freeze itself and wait to be awoken by another process.
 * System Hierarchy
 * Level 0 - processor, scheduling, and interupts
 * Level 1 - Memory controller
 * Level 2 - Message Interpreter - handles the console and teleprinter
 * Level 3 - Peripherals
 * Level 4 - Independent user programs

Semaphores!

 * It's an integer!
 * You can P it or V it!
 * If you P it, it's value is reduced by 1 and you have to stop if it's negative
 * If you V it, it's value is increased by 1 and a process is removed from the waiting list and allowed to continue if the value is non-positive (such as going from negative to zero).
 * Mutexes can be used on critical sections for mutual exclusion