操作系統面試—cpu調度

cpu調度是多道程序設計的基礎。本文是對操作系統概念(第七版)第五章——cpu調度的學習總結,不足之處歡迎各位博友提出,共同進步。

本文內容:

1、介紹cpu調度常見概念。

2、介紹cpu調度算法以及特點。


(1)cpu調度決策發生的情況:

a、當一個進程從運行態到等待狀態。(I/O請求)

b、運行狀態到就緒態(中斷)

c、等待狀態到運行態

d、一個進程終止

其中a,d是非搶佔的,b,c是搶佔的。

(2)調度準則

a、cpu使用率

b、吞吐量(單位時間內可以完成的進程數量)

c、週轉時間(進程提交到完成所需要的總時間)

d、等待時間(進程在就緒隊列中等待所花費的總時間)

e、響應時間(提交請求到第一響應的時間(開始響應))

(3)調度算法

a、先到先服務調度(FCFS)

缺點:平均等待時間通常比較長。

特點:非搶佔的。

b、最短作業優先調度(SJF)

特點:最佳的,但困難在於無法確定下一個cpu區間的長度。可以是搶佔和非搶佔的。搶佔SJF調度又稱爲最短剩餘時間優先調度。

解決:近似SJF調度:t(n+1)=ax(n)+t(n),x(n)爲第n個區間cpu的長度。

c、優先級調度

特點:可搶佔,可非搶佔。

問題:無窮阻塞/飢餓,即優先級低的可能一直得不到cpu

解決:老化技術,隨着時間優先級提高。

d、輪轉法調度(RR)

特點:分配時間片,是可搶佔的(運行時間超過時間片,則被搶佔)

缺點:平均等待時間較長。

e、多級隊列調度

特點:多個隊列,每個隊列的優先級不同,並且在不同的隊列可以採用不同的調度算法。

缺點:進程無法在不同的隊列中進行移動。

f、多級反饋隊列調度

特點:進程無法在不同的隊列中進行移動,這是最通用的調度算法,但也最複雜。

(4)多處理器調度

a、非對稱多處理,(由一個處理器處理所有的調度等)

b、對此多處理(smp),每個處理器自我調度。

(5)處理器親和性

本質就是努力是一個進程在一個處理器中運行,而不在處理器之間進行移動。

原因:移動之後得重新建立緩存,時間開銷大。

(6)負載平衡

目標:是cpu能夠平衡利用,不會導致某個cpu負載過重,而另外的空閒。

兩種方法:push migration和pull migration.

負載平衡和處理器親和性是衝突的。

(7)對稱多線程(超線程)

思路:將一個物理處理器分成多個邏輯處理器,超線程是基於硬件而不是軟件的,每個邏輯處理器有自己的架構狀態。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章