1. Introduction
An operating system is designed not only to manage hardware resources but also to optimize system behavior according to specific objectives. These objectives, commonly referred to as the goals of an operating system, guide its design, implementation, and performance.
The three primary goals are:
Efficiency
Convenience
Fairness
These goals often interact with each other and may involve trade-offs depending on system requirements.
2. Efficiency
2.1 Definition
Efficiency refers to the ability of the operating system to utilize system resources — such as CPU, memory, and I/O devices — optimally, minimizing waste and maximizing throughput.
2.2 Key Aspects of Efficiency
2.2.1 CPU Utilization
The OS aims to keep the CPU as busy as possible.
Avoid idle CPU cycles
Use scheduling algorithms to select appropriate processes
2.2.2 Throughput
Number of processes completed per unit time.
Higher throughput indicates better performance
2.2.3 Turnaround Time
Time taken from process submission to completion.
2.2.4 Response Time
Time taken to respond to a user request.
2.3 Example
In a time-sharing system:
The OS uses Round Robin scheduling to ensure quick response
It balances CPU allocation among processes
2.4 Trade-offs
Maximizing CPU utilization may:
Increase waiting time
Reduce responsiveness
Thus, efficiency must be balanced with other goals.
3. Convenience
3.1 Definition
Convenience refers to making the system easy to use and simplifying application development.
3.2 How OS Provides Convenience
3.2.1 Abstraction
The OS hides hardware complexity by providing:
Files instead of disk blocks
Virtual memory instead of physical memory
Processes instead of CPU instructions
3.2.2 System Calls
Applications interact with the OS through well-defined interfaces.
Example
The programmer does not need to handle hardware-level I/O.
3.2.3 User Interfaces
Command Line Interface (CLI)
Graphical User Interface (GUI)
These allow users to interact with the system easily.
3.3 Impact
Convenience:
Reduces development complexity
Improves productivity
Enables portability across systems
4. Fairness
4.1 Definition
Fairness ensures that all processes and users receive equitable access to system resources without starvation.
4.2 Key Aspects
4.2.1 CPU Scheduling Fairness
No process should be indefinitely delayed
Scheduling algorithms must ensure balanced allocation
4.2.2 Resource Sharing
Memory, I/O, and CPU should be distributed fairly
Prevent monopolization by a single process
4.3 Starvation and Aging
A system lacking fairness may lead to starvation, where a process never gets CPU time.
Solution: Aging
Gradually increase priority of waiting processes
4.4 Example
In priority scheduling:
Low-priority processes may starve
Aging ensures eventual execution
5. Interrelationship Between Goals
The three goals are interconnected:
Improving efficiency may reduce fairness
Increasing fairness may reduce efficiency
Enhancing convenience may introduce overhead
Example
Complex abstractions improve convenience but may reduce performance.
6. Design Trade-offs
Operating system design often involves balancing these goals:
| Goal Prioritized | Impact |
|---|---|
| Efficiency | High throughput, possible unfairness |
| Fairness | Balanced allocation, possible overhead |
| Convenience | Ease of use, possible performance cost |
7. Real-World Perspective
Different systems prioritize goals differently:
Batch Systems → Efficiency
Interactive Systems → Convenience + Response Time
Real-Time Systems → Deterministic behavior (strict deadlines)