1. Multi Level Queue Scheduling (MLQ) :
It is quite difficult to have just one queue and schedule all processes. This is where multi-level queue scheduling is used. In this, processes are divided into various classes depending upon property of processes such as system process, I/O process, etc. Thus we get ‘n’ number of queues for n classes of processes. Each queue is assigned a priority and can use its own scheduling algorithm which makes it convenient to use many scheduling algorithms at the same time. Generally, topmost level of queue has highest priority which decreases as we move to lower levels. If upper level has an absolute priority over lower levels then it is non-preemptive else if time slice is divided between various queues then it becomes preemptive in nature
- Advantages –
The major advantage of this algorithm is that we can use various algorithms such as FCFS, SJF, LJF, etc. At the same time in different queues.
- Disadvantages –
The lowest level processes suffer from starvation problem.
2. Priority Scheduling Algorithm :
Priority scheduling algorithm executes processes depending upon their priority. Each process is allocated a priority and process with highest priority is executed first. Priorities can be defined internally as well as externally. Internal priorities are decided by system depending upon number of resources required, time needed, etc. whereas external priorities are based upon time in which work is needed or amount being paid for work done or importance of process. Priority scheduling can be preemptive or non-preemptive.
Note –
- If two processes have same priority then tie is broken using FCFS.
- The waiting time for highest priority process is always zero in preemptive mode while it may not be zero in case of non-preemptive mode.
Disadvantages:
The major problem is starvation or indefinite blocking. It may so happen that in stream of processes, system keeps executing high priority processes and low priority processes never get executed.
Difference between MLQ and Priority Scheduling Algorithm :
S.No. |
Multi level queue scheduling (MLQ) |
Priority scheduling |
1. |
Processes are executed depending on priority of that particular level of queue to which process belongs. Further selection of process is based upon type of algorithm used in that particular queue. |
It executes processes based upon their priorities i.e. in descending order of their priorities. A process with higher priority is executed first. |
2. |
It can be both non-preemptive and preemptive in nature depending upon conditions. |
It is both preemptive and non preemptive in nature. |
3. |
Average waiting time and average response time depends upon algorithms used in various levels of multi level queue for scheduling. |
There is no idea of average waiting time and response time. |
4. |
It leads to starvation of processes at lower levels of multi-level queue. |
The problem of blocking of a process can be solved through aging which means to gradually increase priority of a process after a fixed interval of time by a fixed number. |
Level Up Your GATE Prep!
Embark on a transformative journey towards GATE success by choosing
Data Science & AI as your second paper choice with our specialized course. If you find yourself lost in the vast landscape of the GATE syllabus, our program is the compass you need.
Last Updated :
15 Jul, 2020
Like Article
Save Article
Vote for difficulty
We use cookies to ensure you have the best browsing experience on our website. By using our site, you
acknowledge that you have read and understood our
Cookie Policy &
Privacy Policy
Please go through our recently updated Improvement Guidelines before submitting any improvements.
This article is being improved by another user right now. You can suggest the changes for now and it will be under the article's discussion tab.
You will be notified via email once the article is available for improvement.
Thank you for your valuable feedback!
Please go through our recently updated Improvement Guidelines before submitting any improvements.
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.