Learning outcomes
- Describe batch and interactive operating systems with examples.
Different computing needs demand different OS behavior. Some environments want maximum throughput (finish many jobs), while others want quick response (fast interaction). Classification helps us choose the right OS style for the problem.
In a Batch OS, jobs are collected and executed one after another with no direct user interaction during execution. Typical examples: offline billing and payroll processing. Main drawback: high turnaround time and limited debugging interaction.
Batch systems historically improved performance using spooling (Simultaneous Peripheral Operations On-Line). Spooling overlaps the input/output of one job with the computation of other jobs, keeping CPU and input/output devices busy at higher rates.
A key consequence is that spooling naturally leads to multiprogramming, described as the foundation of modern OS design.
The Atlas system is described as a batch operating system with spooling, where spooling helped schedule jobs based on availability of peripheral devices (tape units, readers, printers, etc.).
In an Interactive OS, the user interacts with the system during program execution—typing commands, editing files, compiling, running, and seeing outputs quickly. Here the key goal is fast response time rather than only high throughput.
Interactive and time-sharing are related, but not identical:
When many users/processes share the same machine (for example, a lab server), interactive systems are commonly implemented as time-sharing systems: the CPU switches rapidly among users/processes, giving the impression of a dedicated machine. CPU time is divided into small quanta (time slices), and interactive response is prioritized over batch throughput.
Interactive time-sharing typically relies on multiprogramming: multiple processes are kept in memory; when one waits for input/output, another can run—helping keep CPU utilization high.
| Aspect | Batch System | Interactive System | Time-Sharing System |
|---|---|---|---|
| User interaction | No interaction while job executes | User interacts frequently during execution | Many users interact concurrently (shared machine) |
| Main goal | High throughput | Fast response for the active user | Fast response + fairness among many users |
| Performance metric | Turnaround time (submit → complete) | Response time (request → reply) | Response time + fairness + acceptable overhead |
| Typical workload | Large offline jobs | Short cycles: edit/run/see output | Many short interactive tasks from many users |
| Typical technique | Job queues + spooling | Preemptive multitasking + fast input/output | Time slicing (quanta) + strong isolation/protection |
| Examples | Payroll, offline billing | Personal desktop/laptop use | Lab servers, multiuser UNIX/Linux environments |
Batch maximizes throughput, Interactive maximizes fast user response, and Time-sharing is interactive computing extended to many users using time slices + fairness.
Best fit because: no need for interactive steps; throughput and correctness matter most.
Best fit because: quick response time is critical; system shares CPU fairly among users.