Scheduling Objectives in Process:
Schedulers typically attempt to achieve some combination of the following,
goals. Note that, to some extent, these goals are contradictory:
- Maximize CPU utilization (due to its relatively high cost).
- Maximize utilization of other resources (disks, printers etc.).
- Maximize throughput = number of jobs completed per unit time.
waiting time = total time a job spends waiting in the various queues for a
resource to become available.
- Minimize turnaround time = waiting time + computation time + I/O time.
- Minimize response time (timesharing) = time from entry of a command until
first output starts to appear.
- Fairness: All comparable jobs should be treated equally.
- Avoid indefinite postponement: It is normally avoided by using aging. In
aging, the priority of a process, grows as it waits for a resource. The priority
slowly becomes highest and it gets the resource.
- Uniformity: The behavior of the system should be predictable.
- Graceful degradation: The system, response deteriorates gradually rather than
coming to a sudden virtual standstill in case of excessive loads.
- Predictably: A given job should run in about the same amount of time and at
about same cost regardless of system load.