What iS Priority Scheduling
What is Priority Scheduling
Priority scheduling is being able to identify, schedule and complete tasks in the most efficient and effective way. Efficiency is achieving the maximum impact with minimal use of time, effort and resources. Effective is being timely, appropriate, and relevant.
Priority Scheduling is a method of scheduling processes that is based on priority. In this algorithm, the scheduler selects the tasks to work as per the priority.
The processes with higher priority should be carried out first, whereas jobs with equal priorities are carried out on a round-robin or FCFS basis. Priority depends upon memory requirements, time
We can categorise tasks as being important and urgent. In the schematic above there are four categories of tasks.
- Those that are urgent and important
- Those that are urgent but not that important.
- Those that are important but not urgent
- Those that are neither important or urgent.
During a workflow process, you undertake 'priority scheduling' by first categorising tasks into the four categories. Within the four categories there may be further sub-categorisation. For example, some tasks maybe more important and urgent than others. Once the tasks have been allocated within the four categories, they are then accomplished according to the order 1, 2, 3, and 4.
Another way of undertaking 'priority scheduling' at a higher level of leadership and management within an organization is to categorise them into:
- High strategic and operational significance.
- High strategic and low operational significance.
- High operational and low strategic significance.
- Low strategic and operational significance.
- Again, 'priority scheduling' is tackling the issues in the order of 1, 2, 3, and 4.
Characteristics of Priority Scheduling
- A CPU algorithm that schedules processes based on priority.
- It used in Operating systems for performing batch processes.
- If two jobs having the same priority are READY, it works on a FIRST COME, FIRST SERVED basis.
- In priority scheduling, a number is assigned to each process that indicates its priority level.
- Lower the number, higher is the priority.
- In this type of scheduling algorithm, if a newer process arrives, that is having a higher priority than the currently running process, then the currently running process is preempted.
Advantage of Priority Scheduling
- Easy to use scheduling method.
- Processes are executed on the basis of priority so high priority does not need to wait for long which saves time.
- This method provides a good mechanism where the relative important of each process may be precisely defined.
- Suitable for applications with fluctuating time and resource requirements.
Disadvantages of Priority Scheduling
- If the system eventually crashes, all low priority processes get lost.
- If high priority processes take lots of CPU time, then the lower priority processes may starve and will be postponed for an indefinite time.
- This scheduling algorithm may leave some low priority processes waiting indefinitely.
- A process will be blocked when it is ready to run but has to wait for the CPU because some other process is running currently.
- If a new higher priority process keeps on coming in the ready queue, then the process which is in the waiting state may need to wait for a long duration of time.