The priority scheduling algorithm is a kind of CPU scheduling algorithm where the processes that wait for the CPU are scheduled according to their priority..
scheduling algorithm
Cooperative schedulingPreemptive scheduling Rate-monotonic schedulingRound-robin schedulingFixed priority pre-emptive scheduling, an implementation of preemptive time slicingFixed-Priority Scheduling with Deferred PreemptionFixed-Priority Non-preemptive SchedulingCritical section preemptive schedulingStatic time schedulingEarliest Deadline First approachStochastic digraphs with multi-threaded graph traversal
The main advantage is that they ensure fairness to all jobs, regardless of its priority and also provide quick response time depending on the CPU time the job needs. The main disadvantage is that it provides indefinite postponement to process.
Preemptive scheduler reruns scheduling decision when process becomes ready. If the new process has priority over running process, the CPU preempts the running process and executes the new process. Non-preemptive scheduler only does scheduling decision when running process voluntarily gives up CPU. In effect, it allows every running process to finish its CPU burst.
1.) in preemptive scheduling we prempt the currently executing process, in non preemptive scheduling we allow the current process to finish its CPU burst time... 2.) in preemptive scheduling the process is forcibly sent to waiting state when a process with higher priority comes to CPU, in non preeemptive scheduling the process at running state can not be forced to leave the CPU until it completes........
Priority based algorithm
Windows XP uses a quantum-based, preemptive priority scheduling algorithm
The Least Slack Time scheduling algorithm is used for assigning priority based on the slack time (temporal difference between the deadline, ready time and run time) of a process.
disadvantages of priority scheduling
scheduling algorithm
Advantages of Priority Scheduling-1.Simplicity.2.Reasonable support for priority.3.Suitable for applications with varying time and resource requirements.Disadvantages of Priority Scheduling-1.Indefinite blocking or starvation.2.A priority scheduling can leave some low priority waiting processes indefinitely for CPU.3.If the system eventually crashes then all unfinished low priority processes gets lost.
In that work system, the shortest job gets higher priority because more gets accomplished in any amount of time. If you have two hours to do 4 tasks and one task will take five minutes, one will take 30 minutes, one will take an hour and one will take an hour and a half, by using the shortest job first method, you will accomplish three tasks in those two hours and part of the fourth task. If you do the longest job first, you will accomplish the task that takes an hour and a half, then only part of the one hour task, but nothing on the 5 minute or 30 minute tasks. That means that by doing the shortest jobs first, you will accomplish three times as many tasks as you will by doing the longest jobs first.
same as linux use.
In priority scheduling, if two processes have the same priority, some operating systems may use a secondary criteria, such as time since last execution or process ID, to determine the order in which they are executed. Alternatively, the operating system may use a first-come-first-serve basis for scheduling processes with the same priority.
The most efficient algorithm for optimizing task allocation and resource utilization in scheduling problems is the Genetic Algorithm. This algorithm mimics the process of natural selection to find the best solution by evolving a population of potential solutions over multiple generations. It is known for its ability to handle complex and dynamic scheduling problems effectively.
Cooperative schedulingPreemptive scheduling Rate-monotonic schedulingRound-robin schedulingFixed priority pre-emptive scheduling, an implementation of preemptive time slicingFixed-Priority Scheduling with Deferred PreemptionFixed-Priority Non-preemptive SchedulingCritical section preemptive schedulingStatic time schedulingEarliest Deadline First approachStochastic digraphs with multi-threaded graph traversal
The round-robin scheduling algorithm allocates CPU time to processes by sequentially assigning the CPU to processes of equal priority that are in the state of being able to use the CPU. (Not blocked) This works by appearing to evenly distribute the CPU amongst CPU ready processes. Processes that are waiting on something, such as an I/O event, particularly waiting on the user to press Enter, are not considered for allocation. Often, there is a priority assigned to the process, which factors in the allocation strategy. Processes that are mostly I/O intensive tend to have higher priority, giving them good response time. Processes that are mostly CPU intensive tend to have lower priority, so they don't interfere with overall system responsiveness.