OS Process Scheduling Q & A #1


Question: What is a process scheduler? State the characteristics of a good process scheduler?


What is scheduling? What criteria affect the scheduler's performance?

Answer: Scheduling can be defined as a set of policies and mechanisms which controls the order in which the work to be done is completed. The scheduling program which is a system software concerned with scheduling is called the scheduler and the algorithm it uses is called the scheduling algorithm.

Various criteria or characteristics that help in designing a good scheduling algorithm are:

  • CPU Utilization − A scheduling algorithm should be designed so that CPU remains busy as possible. It should make efficient use of CPU.

  • Throughput − Throughput is the amount of work completed in a unit of time. In other words throughput is the processes executed to number of jobs completed in a unit of time. The scheduling algorithm must look to maximize the number of jobs processed per time unit.

  • Response time − Response time is the time taken to start responding to the request. A scheduler must aim to minimize response time for interactive users.

  • Turnaround time − Turnaround time refers to the time between the moment of submission of a job/ process and the time of its completion. Thus how long it takes to execute a process is also an important factor.

  • Waiting time − It is the time a job waits for resource allocation when several jobs are competing in multiprogramming system. The aim is to minimize the waiting time.

  • Fairness − A good scheduler should make sure that each process gets its fair share of the CPU.