There are several different criteria to consider when trying to select the “best” scheduling algorithm for a particular situation and environment, including:
- CPU utilization : To keep the CPU as busy as possible. It may range from 0 to 100%. In real time system, it suits range from 40% (for a lightly loaded system ) to 90% ( for heavily loaded system ).
- Throughput : It is the number of processes completed per unit time. This may range from 10 / second to 1 / hour depending on the specific processes.
- Turnaround time : It is the amount of time taken to execute a particular process, i.e. The interval from time of submission of the process to the time of completion of the process(Wall clock time).
- Waiting time : How much time processes spend in the ready queue waiting their turn to get on the CPU. Waiting time is the sum of period spends waiting in the ready queue.
- Response time : Amount of time it takes from when a request was submitted until the first response is produced. Remember, it is the time till the first response and not the completion of process execution(final response).
[In general, CPU utilization and Throughput are maximized and other factors are reduced for proper optimization.]