在FCFS调度算法中,缺点是如果具有较高突发时间的过程P1出现在某些过程P2,P3 ...之前具有小得多的突发时间,则平均等待时间和平均完成时间相当高。
此问题的解决方案是安排最短作业优先(SJF Algo)。
但是如何提前计算出爆发时间?开发人员是否指定了一个公式(根据可用资源)预先计算执行作业的突发时间?
答案 0 :(得分:6)
估计进程的突发时间是一个非常大的主题。 通常,调度器根据最近的cpu突发的长度估计下一个突发的长度。基本上我们所做的是通过假设它将与该过程的过去CPU突发相关来猜测下一个CPU突发时间。
快速谷歌搜索引导我发表this文章,这将为您提供一个基本想法。
here是一篇更详细的文章
答案 1 :(得分:3)
这可以使用指数平均估计公式来完成 -
第(n + 1)次CPU突发的估计CPU突发时间=(alpha)(第n次CPU突发的实际CPU突发时间)+(1-alpha)(估计的CPU突发)第n次CPU突发的时间。
其中, α=常数在0 <=α<= 1之间变化。
第n个CPU突发的实际CPU突发时间=这是进程/作业的最新CPU突发时间。
第n个CPU突发的估计CPU突发时间=它让我们了解了进程/作业的历史记录,即以前我们估计的CPU突发时间。
首次执行(alpha = 1)时,我们必须执行一次进程/作业。 这给了我们(第n次CPU突发的实际CPU突发时间),
现在,我们可以通过改变alpha来估计即将到来的CPU突发时间值。