optional · CSS study notes
Role and Evolution of Operating Systems
CSS Optional — Paper-II, Section-A · P-II.III.I
The OS is examined from two angles that examiners deliberately mix: (1) its role — what job it does for the user and the hardware, and (2) its evolution — how that job changed as hardware got cheaper and users got more demanding. Answer both angles even when only one is explicitly asked, because full marks usually require linking the historical stage to why that stage's OS looked the way it did.
1. Role of an Operating System
An OS is system software that sits between the user/application programs and the computer hardware. It is examined under two complementary views:
- Resource Manager view: the OS allocates and reclaims CPU time, main memory, secondary storage, and I/O devices among competing processes, resolving conflicts and enforcing fairness/protection so processes don't interfere with each other.
- Extended (Virtual) Machine view: raw hardware is inconvenient and inconsistent to program directly (different disks, different device timings). The OS hides this by exposing a clean, uniform, high-level interface (system calls, file abstractions) — effectively giving the programmer a "better" virtual computer than the physical one.
Concrete responsibilities that follow from these two views: process management, memory management, file system management, I/O/device management, protection & security, and providing the user interface (CLI/GUI) through which humans issue commands.
2. Evolution of Operating Systems
graph LR
A["1940s-50s
Serial Processing
(no OS at all)"] --> B["Late 1950s-60s
Batch Systems
(operator + job queue)"]
B --> C["1960s
Multiprogrammed
Batch Systems"]
C --> D["1970s
Time-Sharing
Systems"]
D --> E["1980s-90s
Personal Computer /
Desktop OS"]
E --> F["2000s-present
Distributed, Real-Time,
Mobile, Cloud OS"]
- Serial Processing (1940s-50s): no OS existed. Programmers booked machine time, loaded a program via switches/punch cards, and ran it alone. Setup time massively exceeded execution time — the CPU sat idle during loading.
- Simple Batch Systems (late 1950s): an operator grouped similar jobs into a batch and a resident monitor (an early, primitive OS) automatically sequenced them, eliminating manual setup between jobs. The CPU still sat idle whenever a job did I/O.
- Multiprogrammed Batch Systems (1960s): several jobs are kept in memory at once; when the running job blocks on I/O, the CPU immediately switches to another resident job instead of idling. This is the first real exploitation of CPU/I/O overlap and the direct ancestor of modern scheduling.
- Time-Sharing Systems (1970s): multiprogramming is combined with fast, preemptive switching (small time slices) so that multiple interactive users at terminals each get the illusion of their own dedicated, immediately-responsive machine — CTSS and later UNIX are the canonical examples.
- Personal Computer OS (1980s-90s): hardware became cheap enough for one user to own a whole machine (DOS, early Windows, Mac OS) — priorities shifted from maximizing CPU utilization (irrelevant with a dedicated single user) toward usability and a graphical interface.
- Modern era (2000s-present): distributed OS (resources of networked machines presented as one system), real-time OS (hard timing deadlines, e.g. RTOS in avionics/medical devices), mobile OS (Android/iOS — power and touch-first), and cloud/virtualized OS (a hypervisor multiplexing several guest OS instances on shared hardware).
3. Operating System Services (frequently asked as its own question — "What services does an OS provide?")
| Service | What it means |
|---|---|
| User Interface | CLI (command-line) or GUI through which users issue commands |
| Program Execution | Loading a program into memory, running it, and handling normal/abnormal termination |
| I/O Operations | A running program may need I/O involving a file or device — the OS provides the means since users can't control I/O devices directly |
| File-System Manipulation | Create/delete/read/write files and directories, search, list, manage permissions |
| Communications | Exchange of information between processes, either on the same computer (shared memory/message passing) or across a network |
| Error Detection | Constantly monitor for errors — in the CPU/memory hardware, I/O devices, or user programs — and take corrective action |
| Resource Allocation | When multiple users/jobs run concurrently, resources (CPU cycles, memory, storage, I/O devices) must be allocated to each |
| Accounting | Track which users use how much and what kinds of resources, for statistics or billing |
| Protection & Security | Ensure all access to system resources is controlled, and the system is protected from unauthorized access/attacks |
The first five (UI, program execution, I/O, file manipulation, communication) exist to make computing more convenient for the user; the last four (error detection, resource allocation, accounting, protection) exist to ensure efficient operation of the system itself — a useful two-bucket way to organize a "list the services" answer for full marks.
4. System Boot (Bootstrapping)
When a computer is powered on, no OS is yet in memory, so a small bootstrap program (stored in firmware — BIOS/UEFI or ROM) runs first. It locates the OS kernel on disk, loads it into memory, and transfers control to it (_start), after which the kernel initializes its data structures, starts the first process (init/systemd on Linux), and the system becomes interactive. This is worth a one-line mention whenever a question asks "how does an OS begin operating" alongside the evolution/role answer.
5. Historical Milestones Worth Naming
- CTSS (Compatible Time-Sharing System, MIT, 1961) — one of the first time-sharing systems, direct ancestor of the time-sharing concept.
- MULTICS (1960s) — an ambitious, influential time-sharing OS project; though not itself hugely commercially successful, its ideas directly inspired UNIX (the name is even a pun — "UNICS," "castrated MULTICS").
- UNIX (Bell Labs, 1969, Ritchie & Thompson) — became the template for time-sharing, multi-user OS design still visible in Linux/macOS today.
Naming at least one of these with its date is what separates a "good" evolution answer from a "very good" one in CSS marking.
🎯 CSS Exam Angle
Examiners rarely want a bare timeline. The high-scoring framing is: for each stage, name the driving hardware/economic constraint and the specific inefficiency the next stage fixed — e.g., "multiprogramming was introduced specifically to eliminate CPU idle time during I/O in batch systems." A question phrased as "how does an OS mediate between applications and hardware" (asked in 2024) is really asking you to combine the Resource-Manager + Extended-Machine views above, not just list responsibilities. For an "OS services" question, structure your answer around the user-convenience vs system-efficiency split in section 3.
📌 Past CSS Paper Questions on this Topic
| Year | Paper | Marks | Question |
|---|---|---|---|
| 2024 | Paper-II, Q5(b) | 7 | How does an OS mediate between application programs and the computer hardware? Discuss the key roles and responsibilities of an OS in managing resources. |
Model angle for the 2024 question: open with the abstraction-layer idea (system calls/APIs hide hardware registers and enforce protection), then walk through the six responsibilities listed in section 1 as the "roles," closing with one sentence tying it back to why abstraction is necessary (prevents one app from corrupting hardware state or another app's memory).
⚠️ MCQ Traps
- Multiprogramming ≠ Time-sharing ≠ Multitasking. Multiprogramming is about keeping several jobs in memory to maximize CPU utilization (originally a batch, non-interactive concept). Time-sharing adds fast preemptive switching for interactive response. Multitasking is the general modern term covering both. Examiners test this triad constantly.
- The resident monitor in simple batch systems is not a full OS in the modern sense — it only sequences jobs; it does not provide multiprogramming or protection.
- Real-time ≠ fast. A hard real-time OS's defining property is a guaranteed deadline, not raw speed — missing a deadline is a system failure even if the answer is eventually "fast."
- CTSS predates UNIX and MULTICS — if a question asks for the "first" time-sharing system, CTSS (1961) is the safer answer over MULTICS (which came slightly later and was itself inspired partly by CTSS's ideas).
📜 Past-Paper Questions & MCQs (CSS 2016–2026)
2024 · Paper-II · Q5(b) · 7 marks
Q. How does an operating system mediate between application programs and computer hardware? Discuss the key roles and responsibilities of an operating system in managing resources.
Ans.
- The OS is the intermediary layer: applications never touch the hardware directly. They call the OS through system calls, and the OS uses device drivers to control the hardware. This gives a simple, uniform and safe interface, and hides hardware differences.
- Resource-management roles:
- Processor management: scheduling, process creation and context switching.
- Memory management: allocation, protection, paging and virtual memory.
- File management: files, directories and storage allocation.
- Device (I/O) management: drivers, buffering, caching and spooling.
- Security and protection: user authentication, access control and isolation of processes.
- User interface (shell or GUI), networking and error handling and accounting.
MCQs
2024 P-II · Q9. Which of the following are/is true?
- (A) In the era of platform independence all operating systems can be made without considering low-level details of machines
- (B) Operating systems can be made without using assembly languages ✅
- (C) Operating systems aren't needed because everything can run on the internet
- (D) None of these
- Answer: (B).
- Why: modern kernels are written mostly in C (and now Rust), with only a tiny assembly part in some systems. An OS cannot ignore the hardware, because it must control it, so (A) is false, and web applications still run on an OS, so (C) is false.