Skip to main content

Priority scheduling


Priority scheduling

  •          In priority scheduling , a priority is associated with all processes.
  •           Process are executed in sequence according to their priority.
  •          The CPU time is allocated to the process with highest priority.
  •          If the priority of two or more processes are equal than the process that has been inserted first  into  the ready queue is selected for execution. In other words, FCFS scheduling is performed when wo or more processes have same priority.
  •          The priorities are implemented as affixed range of numbers such as 0to 7 or 0 to 4,095.
  •          In other system, a low number indicates a high priority . in that case,a process with priority 0 is executed first.
  •          Priorities can be defined in two ways : internal or externall.
  •          Priority scheduling can be preemptive or non preemptive.

  1.          In preemptive priority scheduling, scheduler allocates the CPU to the new process if the priority of new process is higher than priorityof the running process.
  2.           In non-preemptive priority scheduling, the running process is not interrupted even if new process has a higher priority. In this case the new process will be placed at the head of ready queue.

               

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.

Example of Priority Scheduling

Consider following five processes P1 to P5. Each process has its unique priority, burst time, and arrival time.

ProcessPriorityBurst timeArrival time
P1140
P2230
P3176
P43411
P52212

Step 0) At time=0, Process P1 and P2 arrive. P1 has higher priority than P2. The execution begins with process P1, which has burst time 4.

Step 1) At time=1, no new process arrive. Execution continues with P1.

Step 2) At time 2, no new process arrives, so you can continue with P1. P2 is in the waiting queue.

Step 3) At time 3, no new process arrives so you can continue with P1. P2 process still in the waiting queue.

Step 4) At time 4, P1 has finished its execution. P2 starts execution.

Step 5) At time= 5, no new process arrives, so we continue with P2.

Step 6) At time=6, P3 arrives. P3 is at higher priority (1) compared to P2 having priority (2). P2 is preempted, and P3 begins its execution.

ProcessPriorityBurst timeArrival time
P1140
P221 out of 3 pending0
P3176
P43411
P52212

Step 7) At time 7, no-new process arrives, so we continue with P3. P2 is in the waiting queue.

Step 8) At time= 8, no new process arrives, so we can continue with P3.

Step 9) At time= 9, no new process comes so we can continue with P3.

Step 10) At time interval 10, no new process comes, so we continue with P3

Step 11) At time=11, P4 arrives with priority 4. P3 has higher priority, so it continues its execution.

ProcessPriorityBurst timeArrival time
P1140
P221 out of 3 pending0
P312 out of 7 pending6
P43411
P52212

Step 12) At time=12, P5 arrives. P3 has higher priority, so it continues execution.

Step 13) At time=13, P3 completes execution. We have P2,P4,P5 in ready queue. P2 and P5 have equal priority. Arrival time of P2 is before P5. So P2 starts execution.

ProcessPriorityBurst timeArrival time
P1140
P221 out of 3 pending0
P3176
P43411
P52212

Step 14) At time =14, the P2 process has finished its execution. P4 and P5 are in the waiting state. P5 has the highest priority and starts execution.

Step 15) At time =15, P5 continues execution.

Step 16) At time= 16, P5 is finished with its execution. P4 is the only process left. It starts execution.

Step 17) At time =20, P5 has completed execution and no process is left.

Step 18) Let's calculate the average waiting time for the above example.

Waiting Time = start time - arrival time + wait time for next burst

P1 = o - o = o
P2 =4 - o + 7 =11	
P3= 6-6=0
P4= 16-11=5
Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6

Advantages of priority scheduling

Here, are benefits/pros of using priority scheduling method:

  • 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

Here, are cons/drawbacks 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.

Summary:

  • 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.
  • In Priority Preemptive Scheduling, the tasks are mostly assigned with their priorities.
  • In Priority Non-preemptive scheduling method, the CPU has been allocated to a specific process.
  • Processes are executed on the basis of priority so high priority does not need to wait for long which saves time
  • If high priority processes take lots of CPU time, then the lower priority processes may starve and will be postponed for an indefinite time.

 

Comments

Popular posts from this blog

Layered Operating System

  Layered Operating System Layered Structure is a type of system structure in which the different services of the  operating system  are split into various layers, where each layer has a specific well-defined task to perform . It was created to improve the pre-existing structures like the Monolithic structure ( UNIX ) and the Simple structure ( MS-DOS ). Example –  The Windows NT operating system uses this layered approach as a part of it . Design Analysis : The whole Operating System is separated into several layers ( from 0 to n ) as the diagram shows. Each of the layers must have its own specific function to perform. There are some rules in the implementation of the layers as follows. The outermost layer must be the User Interface layer. The innermost layer must be the Hardware layer. A particular layer can access all the layers present below it but it cannot access the layers present above it. That is layer n-1 can access all the layers from n-2 to 0 but it canno...

What is RAM and Why is it Important?

  What is RAM and Why is it Important? Random access memory (RAM) is a computer's short-term memory. None of your programs, files, or Netflix streams would work without RAM, which is your computer’s working space. But what is RAM exactly? In this article, we explain what RAM means in computer terms and why it’s important. What does RAM stand for? RAM is short for “random access memory” and while it might sound mysterious, RAM is one of the most fundamental elements of computing. RAM is the super-fast and temporary data storage space that a computer needs to access right now or in the next few moments. What is RAM and Why is it Important? Random access memory (RAM) is a computer's short-term memory. None of your programs, files, or Netflix streams would work without RAM, which is your computer’s working space. But what is RAM exactly? In this article, we explain what RAM means in computer terms and why it’s important. What does RAM stand for? RAM is short for “random access memo...

System structure operating architecture

  System structure operating  architecture An operating system is a construct that allows the user application programs to interact with the system hardware. Since the operating system is such a complex structure, it should be created with utmost care so it can be used and modified easily. An easy way to do this is to create the operating system in parts. Each of these parts should be well defined with clear inputs, outputs and functions. Simple Structure There are many operating systems that have a rather simple structure. These started as small systems and rapidly expanded much further than their scope. A common example of this is MS-DOS. It was designed simply for a niche amount for people. There was no indication that it would become so popular. An image to illustrate the structure of MS-DOS is as follows − It is better that operating systems have a modular structure, unlike MS-DOS. That would lead to greater control over the computer system and its various applications. T...

Monolithic Architecture

  Monolithic Architecture Monolith means composed all in one piece. The  Monolithic  application describes a single-tiered  software  application in which different components combined into a single program from a single platform. Components can be: Authorization — responsible for authorizing a user Presentation — responsible for handling HTTP requests and responding with either HTML or JSON/XML (for web services APIs). Business logic — the application’s business logic. Database layer — data access objects responsible for accessing the database. Application integration — integration with other services (e.g. via messaging or REST API). Or integration with any other Data sources. Notification module — responsible for sending email notifications whenever needed. Example for Monolithic Approach Consider an example of Ecommerce application, that authorizes customer, takes an order, check products inventory, authorize payment and ships ordered products. This applicat...

Batch Processing Operating System

  Batch processing system ·           Batch processing is one of the oldest method    of running the programs ·           The computer in the past were very large in size and their I/O devices were very different from those that are used today. The job processing was not interactive as it is today. ·           The user did not interact directly with computer system.   ·           The process scheduling , memory management, file management and I/Omanagement functions are quite simple in batch processing system   1.         Process scheduling (i.e. allocation strategy for a processor is typically in order of their arrival i.e. first come first served(FCFS)basis.   2.         Memory management  is done by divi...