Introduction An Operating System (OS) is a system software that acts as an intermediary between user applications and computer hardware. Its principal role is to manage resources efficiently, provide a convenient environment for program execution, and ensure the system can evolve over time.
To achieve its goals, an OS must fulfill the following objectives:
| Objective | Description |
|---|---|
| Resource Allocation | Allocate CPU time, memory space, disk blocks, and I/O channels among competing processes and users fairly and efficiently. |
| Multiprogramming & Concurrency | Enable multiple programs to run “simultaneously” by time-sharing the CPU, managing process synchronization, and preventing race conditions. |
| Protection & Security | Ensure that one process cannot interfere with others or with the OS itself; enforce access controls on files, memory regions, and devices. |
| Reliability & Fault Tolerance | Detect and recover from errors in hardware or software with minimal disruption (e.g., checkpoint/restart, watchdog timers). |
| Performance | Minimize overheads of context switching, I/O waits, and system calls; meet real-time constraints where required. |
| User & Program Interfaces | Provide system calls, libraries, and utilities that simplify application development and system administration. |
| Accounting & Auditing | Track resource usage per process/user for billing, performance tuning, and security auditing. |
| Fairness | Prevent starvation by ensuring all processes eventually gain needed resources (e.g., aging in scheduling). |