教培參考
教育培訓(xùn)行業(yè)知識(shí)型媒體
發(fā)布時(shí)間: 2024年12月29日 05:42
2.4 進(jìn)程調(diào)度算法
在早期的計(jì)算機(jī)系統(tǒng)中,調(diào)度大多數(shù)是非剝奪的;進(jìn)程一直占用CPU直到進(jìn)程阻塞或終止。這種方法比較適用對(duì)于響應(yīng)時(shí)間不關(guān)心或者關(guān)心甚少的批處理作業(yè)。在現(xiàn)代的交互式系統(tǒng)中,使用剝奪調(diào)度,調(diào)度程序?yàn)榱税袰PU分配給另外的進(jìn)程,可能在一個(gè)進(jìn)程終止或阻塞之前就剝奪其執(zhí)行權(quán)。在一個(gè)交互的系統(tǒng)中剝奪是必需的,否則不需要I/O操作的長進(jìn)程會(huì)獨(dú)占CPU,使得就緒隊(duì)列中的進(jìn)程沒有機(jī)會(huì)響應(yīng)它們用戶的輸入。當(dāng)前,已有6種進(jìn)程調(diào)度算法已被廣泛地使用。
2.4.1 先來先服務(wù)
先來先服務(wù)(FCFS)調(diào)度算法是目前最簡單的CPU調(diào)度算法。先來先服務(wù)調(diào)度算法根據(jù)就緒隊(duì)列,按進(jìn)入的先后次序來分配處理機(jī),這是一種不可搶占、非剝奪的調(diào)度方式。一旦一個(gè)進(jìn)程占有處理機(jī),就一直運(yùn)行下去,直到該進(jìn)程完成其工作,或因等待某一事件而不能繼續(xù)執(zhí)行時(shí),才釋放處理機(jī)。采用這種進(jìn)程調(diào)度方式,若一個(gè)運(yùn)行時(shí)間長的作業(yè)先占有了處理機(jī),則會(huì)使很多晚到的、運(yùn)行時(shí)間短的作業(yè)等待時(shí)間過長,引起許多短作業(yè)用戶的不滿。因此,這種方式很少被用作主要調(diào)度策略,但它常作為一種輔助調(diào)度算法使用。
例如,表2-1是三個(gè)作業(yè)幾乎同時(shí)到達(dá)系統(tǒng)并立即進(jìn)入調(diào)度。
假設(shè)系統(tǒng)中沒有其他作業(yè),現(xiàn)采用FCFS 算法進(jìn)行調(diào)度,那么三個(gè)作業(yè)的周轉(zhuǎn)時(shí)間分別為:28、37 和40,因此,平均作業(yè)周轉(zhuǎn)時(shí)間T=(28+37+40)/3 = 35。
若這三個(gè)作業(yè)調(diào)度順序改為作業(yè)2、1、3,平均作業(yè)周轉(zhuǎn)時(shí)間縮短為約29。如果三個(gè)作業(yè)調(diào)度順序改為作業(yè)3、2、1,則平均作業(yè)周轉(zhuǎn)時(shí)間縮短為約18。由此可以看出,F(xiàn)CFS 調(diào)度算法的平均作業(yè)周轉(zhuǎn)時(shí)間與作業(yè)提交及調(diào)度的順序有關(guān)。
2.4 進(jìn)程調(diào)度算法