Priority Based Scheduling Algorithm in Operating system
A set of processes where every process has a specific priority with respect to other process.
Types of Priority scheduling is Fixed and Dynamic Priority Scheduling.
In Fixed, process is assigned a fixed priority at the start.
In Dynamic during execution the priority is calculated and assigned to process.
- Every procedure is given a priority. The process with the highest priority is given the CPU.
- Two processes are scheduled in FCFS order if their priorities are equivalent.
- The priority is often represented by a number between 0 and 7 or 0 and 4095. Here, we take the position that 0 denotes a high priority.
- Time constraints, memory requirements, the number of open files, and the ratio of the average I/O burst to the average CPU burst can all be used to determine the priority.
- It can be either preemptive or nonpreemptive.
- When using a preemptive priority scheduling technique, the CPU will only be preempted if a newly arrived process has a higher priority than a process that is already running.
- Whenever a nonpreemptive priority scheduling technique is used, the newly arrived process will be prioritized and moved to the front of the ready queue.
- The main drawback of this scheduling algorithm is indefinite blocking or starvation (this algorithm can leave the low priority processes waiting indefinitely).
- One of the most popular scheduling methods in batch systems is priority scheduling, a non-preemptive technique.
A priority is given to each procedure. The highest priority process should be carried out first, and so on.
- Processes of the same priority are carried out in the order they are received.
- Based on memory needs, time needs, or any other resource needs, priority can be determined.
Given: Table of processes their Arrival time, Execution time and priority. Here we are considering 1 is the lowest priority.
|Process||Arrival Time||Execution Time||Priority||Service Time|
Waiting time of each process:
|P0||0 – 0 = 0|
|P1||11 – 1 = 10|
|P2||14 – 2 = 12|
|P3||5 – 3 = 2|
Average Wait Time: (0 + 10 + 12 + 2)/4 = 24 / 4 = 6