Difference Between Scheduler and Dispatcher


Schedulers are system software that handle the removal of the running process from the CPU and the selection of another process. It selects a process out of several processes that need to be executed.

There are three types of schedulers in an operating system.

Long Term Scheduler

It is also known as a job. It decides the degree of multi-programming of the system. In simple words, when multiple processes are waiting for the execution, processes having small size are placed in the secondary storage. Then long term scheduler selects the processes from the job queue and brings that process to the ready queue in the main memory

Medium-Term Scheduler

 A running process needs input/output operations. The process goes to waiting state when not in need. This process is called suspended. However, CPU is used to its full utilization, while running the other process. Meanwhile, the suspended process is transferred back to the secondary memory. Now, the transferred process can return back to the main memory and continue its execution. This transfer of suspended process to the secondary memory is called swapping out and bringing the process back to the main memory is known as swapping in. It removes processes from memory, and thus, reduces the degree of multi-programming.

Short Term Scheduler 

It is also known as CPU scheduler. It selects a process in the ready queue that should be allocated for execution. When it picks the process from the ready queue, the previous task goes to the waiting state. This process is completed in a fraction of seconds to avoid wasting the CPU time.




Dispatcher starts functioning once the scheduler’s functions are over. It takes the process to the desired state or queue. When the short term scheduler selects the process from the ready queue, the dispatcher performs the task of allocating the selected process to the CPU. When the running process goes to the waiting state than CPU is allocated to some other process. The switching of CPU from one process to another is called context switching.

 Dispatcher function involves:

  • Switching context
  • Switching to user mode
  • Jumping to the proper location in the newly loaded program

The dispatcher needs to be as fast as possible, as it is run on every context switch. The time consumed by the dispatcher is known as dispatch latency.

Difference between Scheduler and Dispatcher

The scheduler selects a process out of several processes to be executedThe dispatcher allocates the CPU for the selected process by the scheduler
Scheduler works independentlyWorking of the dispatcher is dependent on the scheduler.
Scheduler works on various algorithm such as FCFS, SJF, RR, etc.It has no specific algorithm for its implementation. It is just a code segment.

Review Date
Reviewed Item
Scheduler and Dispatcher
Author Rating