|Ability to run multiple programs .
Logical extension of multiprogramming .
If there are no processes to execute, no I/O devices to service, and no users to whom to respond, an operating system will sit quietly, waiting for something to happen .
Provides distinction between the execution of operating-system code and user-defined code.
Allows OS to maintain control over the CPU by not allowing a user program to get stuck in an infinite loop or to fail to call system services and never return control to the OS.
Passive entity, like the contents of a file stored on disk .
Needs resources to accomplish its task: CPU time, Memory, files, I/O devices .
Has one program counter, specifying the location of the next instruction to execute .
Has multiple program counters.
Access control determines which user may access a file and how that user may access it .