A variety of metrics may be used:
1. CPU utilization: the fraction of the time the CPU is being used (and not for idle process!)
2. Throughput: number of processes that complete their execution per time unit.
3. Turnaround time: amount of time to execute a particular process.
4. Waiting time: amount of time a process has been waiting in the ready queue.
5. Response time: amount of time it takes from when a request was submitted until the first response is produced (in time-sharing systems).
Sensible scheduling strategies might be:
• Maximize throughput or CPU utilization
• Minimize average turnaround time, waiting time or response time.
Also need to worry about fairness and liveness.