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
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 executed||The dispatcher allocates the CPU for the selected process by the scheduler|
|Scheduler works independently||Working 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.|
- Process (Intro)
- Process Life Cycle
- Process Control Block PCB
- Process Scheduling
- Context Switching
- CPU Scheduling
- FCFS Scheduling
- Shortest Job First (or SJF) scheduling – non-preemptive
- Shortest Job First (or SJF) scheduling – preemptive (SRTF)
- Round Robin scheduling
- Priority Scheduling
- Convoy Effect
- Difference between Scheduler and Dispatcher
- Preemptive scheduling vs Non Preemptive scheduling
- Preemptive scheduling
- Non preemptive scheduling