In the FCFS scheduling algorithm the drawback is that if a process P1 with a higher burst time comes before some processes P2,P3... with much smaller burst times then the average waiting time and average completion time is pretty high.
A solution to this problem is to schedule the Shortest Job First(SJF Algo).
But how is the burst time computed in advance? Does the developer specify a formula by which (according to the resources available) the burst time to perform a job is computed in advance?
Determining Length of Next CPU Burst Can be done by using the length of previous CPU bursts, using exponential averaging. 1. tn = actual length of nth CPU burst 2. τn+1 = predicted value for the next CPU burst 3.
Burst time is the amount of time required by a process for executing on CPU. It is also called as execution time or running time. Burst time of a process can not be known in advance before executing the process. It can be known only after the process has executed.
Arrival time The arrival time of a process is when a process is ready to be executed, which means it is finally in a ready state and is waiting in a queue for its turn to be executed. Each process has a pre-determined arrival and burst time, as highlighted in the table below.
Estimating burst time of a process is a very large topic . in general scheduler estimates the length of the next burst based on the lengths of recent cpu bursts. basically what we do is to guess the next CPU burst time by assuming that it will be related to past CPU bursts for that process .
A quick google search led me to this article which will give you a basic idea .
here is a more detailed article
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With