Definition. An OS is a program that is an intermediary between a user and computer hardware.
OS Type | Usage | Advantages | Disadvantages |
---|---|---|---|
No OS | Changing physical config | - minimal overhead | not portable, not efficient use |
Batch OS | (Mainframes) similar jobs are bundled with instructions that OS execs in order. | - computer does more work | - no protection - infinite loops - hard to debug - no concurrency |
Time-sharing OS | Multiple users interact with machine via terminal. job scheduling mimics concurrency. | - memory management - shares CPU time, memory, storage. - Virtualization |
|
PC OS – Windows | Single user at once, but multiple user access | (dedicated machine) | |
PC OS – Unix | One user at workstation, but others can remote access. | (general time sharing model) |
OS is an abstraction.
OS is a resource allocator. Manage resources and arbitrate conflicting requests.
OS is a control program. Prevents accidents and malicious attacks, provides security isolation and protection.
Kernel: complete access to hardware resources; User: partial access.
Kernel: Deals with hardware issues, provides system call interface, special code for interrupt handlers, device drivers.
Code organization:
OS Structures:
Monolithic | Microkernel | |
---|---|---|
Size | Bigger | Smaller |
Execution | Fast | Slow |
Extensibility | Highly coupled, difficult to extend | Ease of extensibility |
Security (e.g. a service crashing) | Highly coupled, may cause whole system to crash | Causes only that microkernel to crash |
Examples | Unix/Win/BSD | QNX, Symbian, L4Linux |
OS assumes total control of hardware. So what is we want to run multiple OS on the same hardware? (e.g. Cloud computing)
Software emulation of hardware = Virtualization of underlying hardware (Illusion of hardware access)
Hypervisor/VMM