作業系統設計/程序排程/SPN
外觀
< 作業系統設計
最短程序優先(SPN)排程,也稱為最短作業優先(SJF)排程,將預計完成最快的程序分配給 CPU,只要 CPU 時間可用。
此方法容易受到停機問題的困擾。停機問題是無法解決的,但基本上說明,給定一個程式和一個特定的輸入,我們能否確定它是否會永遠完成?對於一個簡單的程式,我們可以嘗試執行它,如果它完成了,那麼我們就知道它會完成,但如果它在給定的時間內沒有完成,也許我們只是沒有等待足夠長的時間。
除非允許所有程序執行並記錄它們的執行時間,或從使用者那裡獲取輸入,否則無法確定哪個程序將在最短的時間內執行。
此方法還允許許多短程序將較長的程序從 CPU 中鎖住,從而導致死鎖。
商店裡的收銀員會找到物品最少的人,並先為他們的物品結賬。
可以透過選擇最短的作業而不是更長的作業來實現。
SPN 往往是完成工作總數最優的排程系統,僅次於SRT,但需要準確瞭解程序需要多長時間。這通常由使用者輸入。如果確定最短作業的機制存在缺陷,那麼這可能會顯著降低吞吐量。在一個擁有大量短作業和一個長作業的系統中,長作業可能永遠不會被執行。