作業系統學習筆記 CPU排程

2021-06-29 04:47:09 字數 1897 閱讀 4885

cpu排程的目的在於提高cpu利用率,不讓cpu閒著。cpu是寶貴的資源,如果有乙個程序,本來在cpu中執行,忽然因為要使用io資源,於是轉而請求io,這邊cpu掛起,造成就緒佇列中的其他程序等待,這樣就造成了浪費。

一、cpu排程演算法

1、先到先服務(fcfs)

誰先請求cpu誰先得到服務,一直到服務完。這應該是最簡單的排程了。但效率不高,有些只須很短cpu區間的程序也只能死等,會造成平均等待時間較長。

2、最短作業優先(sjf)

最佳排程演算法,平均等待時間最小。問題在於,如何知道下乙個cpu區間的長度,或者說,如何知道程序要消耗多少cpu時間?

可以通過一定的演算法來**這個長度。

3、優先順序

程序被賦予優先順序。優先順序高的先獲得cpu。

優先順序排程可以是搶占式也可以是非搶占式。、

搶占式:優先順序高的程序到達就緒佇列時,假如正在執行的程序優先順序比它低,立刻搶占cpu;

非搶占式:優先順序高的程序到達就緒佇列時,排在就緒佇列頭部

缺點是會產生無窮堵塞或飢餓,造成有些低優先順序程序無線等待。

解決飢餓問題,是老化。即等待時間越長的程序,其優先順序會遞增。

4、輪轉法(rr)

限定cpu時間片,就緒佇列中的程序輪流執行,每個程序執行完畢即退出,否則重新排隊。如果時間片足夠長,就等於fcfs。

輪轉法專為分時系統而設計。

5、多級佇列

設定多條、優先順序不同的就緒佇列,程序散落其中。一旦歸入某條佇列,不可以轉移到別的佇列。優先順序高的佇列先執行,直至為空,才到次優先順序的佇列。一旦高優先順序佇列又有新程序進入,馬上搶占cpu。

同樣,存在飢餓問題。

6、多級反饋佇列

同多級佇列,但允許程序遷移。假如某個程序消耗cpu時間片次數多,即沉入低優先順序佇列。可以防止飢餓。

二、多處理器排程

1、非對稱多處理和對稱多處理

非對稱多處理:乙個cpu負責排程、io處理及其他系統活動,而其他cpu只執行使用者**。好處是只有乙個cpu訪問系統資料,減輕了資料共享的需要。

對稱處理(smp):每個cpu都可以排程,甚至有私有的就緒佇列。演算法比較複雜。現代作業系統都支援smp。

2、處理器親和性

努力讓乙個程序只在同乙個處理器上執行,就叫處理器親和性。

主要是因為程序遷移到其他處理器,快取需要重新構建。所以這是os極力避免的情況。

親和性有軟硬之分。如果只是努力,而不能保證,則軟也;如果硬性規定,則為硬也,如linux。

3、負載均衡

如何盡快將眾多嗷嗷待運的程序放入cpu中執行,以完全利用多cpu的優點,就涉及到負載均衡。

通常有2種方法:

1)推乙個特定任務周期性地檢查各個cpu,發現不平衡即進行適當調配

2)拉cpu空閒時,即主動從其他地方拉乙個程序過來執行,。

負載均衡與處理器親和性是矛盾的。如何取得平衡,有個度的考量。

4、對稱多執行緒(smt)

多物理cpu同時執行多執行緒,是為對稱多處理器(smp);提供多個邏輯cpu,來同時執行多執行緒,即為對稱多執行緒(smt,英特爾處理器中稱為超執行緒)。

smt的思想是同乙個物理cpu上生成多個邏輯cpu。

smt是硬體提供的,而不是軟體。

5、執行緒排程

os排程的是核心執行緒。乙個使用者執行緒要得到cpu執行,有2個步驟要走:

1)使用者執行緒與核心執行緒掛鉤

2)核心執行緒獲得cpu

使用者執行緒與核心執行緒的對應關係有一對一,多對一,多對多等關係。在後二者模型中,執行緒庫排程使用者執行緒到乙個lwp(輕量級程序)。

但這並不意味著使用者執行緒可以執行。當執行緒所在程序獲得cpu時,程序內的執行緒還要經過爭用,獲得cpu。

獲得lwp,叫程序競爭範圍(pcs);

獲得cpu,叫系統競爭範圍(scs)。

所有的使用者執行緒與核心執行緒對應的模型中,都需要scs。一對一模型中,只有scs。

作業系統 CPU排程

控制 協調多個程序對cpu的競爭 即按一定的排程演算法從就緒佇列中選擇乙個程序,把cpu的使用權交給被選中的程序 n個程序就緒,等待上m m 1 個cpu執行,需要決策哪個程序分配給哪個cpu執行 排程時機 核心對中斷 異常 系統呼叫處理後返回使用者態時 就緒佇列的改變引發重新排程 如程序正常終止 ...

作業系統學習筆記

這裡專門摘錄作業系統相關筆試題和面試題!也當作自己的乙個複習!乙個很全的作業系統常考知識集合 1.分段式儲存和分頁式儲存,以及段頁式儲存的區別 分頁是一維儲存,分段是二維的 因為分頁給出虛擬位址後,作業系統會自動劃分頁號和偏移量 而分段給出位址後,需要知道段號和偏移量,段的長度是可變的!故是二維的 ...

作業系統學習 筆記

單道批處理評價 資源利用率差 互動性差 等 多道批處理 w為了提高系統的利用率 出現多道批處理 多道 是指 某時刻 多個應用程式再主存中,按照某些原則去處理,逐個執行程式。批處理 使用者提交一批作業,首先存放再外存,排成乙個佇列,然後排程程式按一定的演算法去排程從該佇列 中選取佇列中的乙個或若干個作...