Maximize throughput: A scheduling algorithm should
be capable of servicing the maximum number of
processes per unit of time.
Avoid indefinite blocking or starvation: A process
should not wait for unbounded time before or while
process service.
Minimize overhead: Overhead causes wastage of
resources. But when we use system resources effectively,
then overall system performance improves greatly.
Enforcement of priorities: if system assigns priorities to
processes, the scheduling mechanism should favor the
higher-priority processes.
Achieve balance between response and utilization: The
scheduling mechanism should keep resources of system
busy.
Favor processes exhibits desirable behavior. Degrade
gracefully under heavy load.
A system can accomplish these goals in several ways. The
scheduler can prevent indefinite blocking of processes
through the concept of aging. The scheduler can increase
throughput by favoring processes whose requests can be
satisfied quickly, or whose completion cause other
processes to run.