![]() |
||||
![]() ![]() |
![]() |
|||
|
In a priority-based scheduling system, each process is associated with a priority level. For example, windows-based systems have six - RealTime, High, AboveNormal, Normal, BelowNormal and Low - priority levels. The scheduler allocates the CPU to the process with the highest priority. Similar to SJF scheduling, if more than one process have the same priority level, the scheduler picks the next process using FCFS scheduling. Priority-based scheduling is extremely useful for real-time systems (like power stations, and the Mars PathFinder), as it allows urgent processes to run ahead of more trivial jobs. Priorities may be defined internally by the system or externally, by the programmer. Priority-based scheduling may be either preemptive or non-preemptive. In a preemptive priority scheduling system, a newly arrived process that has a higher priority than the currently running process will cause the operating system to preempt the currently running process and run the new process. |
||||
|
||||