A Family of Operating Systems
Operating systems have evolved alongside hardware. Each generation solved a problem of the previous one.
1. Simple Batch Systems
Jobs with similar requirements were grouped into a batch and submitted to the operator. A resident monitor loaded one job at a time. The CPU sat idle while a job did I/O — utilization was poor.
2. Multi-programmed Batch Systems
Several jobs were kept in memory at once. When one job waited for I/O, the OS picked another ready job to run, keeping the CPU busy. Required: memory management, CPU scheduling and job protection.
3. Time-Sharing (Multitasking) Systems
Each user gets a small time slice of the CPU in rapid rotation, giving the illusion of a dedicated machine. Response time is the key metric. Examples: UNIX, Linux, Windows. Requires: virtual memory, swapping, file system, on-line interactive interface.
4. Personal Computer Systems
Single-user, originally single-tasking systems built around microprocessors (Apple II, MS-DOS, early Windows). Goal: convenience and responsiveness, not utilization.
5. Parallel Systems
Multiple CPUs that share memory, bus and clock — also called tightly coupled or multiprocessor systems.
- Symmetric Multiprocessing (SMP): every CPU runs an identical copy of the OS and any task. Modern Linux on multi-core boxes.
- Asymmetric Multiprocessing (AMP): one master CPU schedules work for slave CPUs.
6. Distributed Systems
Loosely coupled — each node has its own memory and CPU, communicating over a network. Goals: resource sharing, computation speed-up, reliability and communication. Examples: clusters, the cloud, peer-to-peer systems.
7. Real-Time Systems
Correctness depends not only on the result but also on the time at which it is produced.
- Hard real-time: missing a deadline is catastrophic (anti-lock brakes, pacemakers).
- Soft real-time: missed deadlines degrade quality but are tolerable (video streaming).
Comparison Table
| Type | Users | Goal | Example |
|---|---|---|---|
| Batch | Many (offline) | Throughput | Old IBM mainframes |
| Multiprogrammed | Many | CPU utilization | OS/360 |
| Time-sharing | Many concurrent | Response time | UNIX, Linux |
| PC | One | Convenience | Windows XP |
| Parallel | Many | Speed-up | Linux on 64-core |
| Distributed | Many across nodes | Resource sharing | Hadoop cluster |
| Real-time | Dedicated | Deadline | RTLinux, VxWorks |
Summary
Each OS type optimizes for a different metric — throughput, response time, deadline guarantee, or convenience. Modern OSs blend several: Linux is simultaneously time-sharing, parallel (SMP) and soft real-time capable.