A good scheduling algorithm should be fair, efficient, maximize throughput and resource use, minimize response time and overhead, minimize turnaround time, degrade gracefully, enforce priorities, and free from starvation.

A scheduler should be fair that make sure no process can suffer from starvation. Note that giving equivalent or equal time is not fair.