作業系統面試 cpu排程

2021-07-13 19:15:48 字數 1272 閱讀 5646

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)

解決:近似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)對稱多執行緒(超執行緒)

思路:將乙個物理處理器分成多個邏輯處理器,超執行緒是基於硬體而不是軟體的,每個邏輯處理器有自己的架構狀態。

作業系統 CPU排程

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

作業系統 CPU排程(一)

cpu排程室多道程式作業系統的基礎。通過在程序之間切換cpu,作業系統可以提高計算機的生產效率。接下來會展示多個不同cpu的排程演算法。還要闡述為特定系統選擇演算法的問題。多道程式設計的 目標是在任何時候都有乙個程序在執行,以使cpu使用了最大化。在單處理器系統中,每次允許乙個程序執行 任何其他程序...

作業系統 (八 CPU排程

目錄 1.背景,cpu排程 在程序 執行緒生命週期的什麼時候進行排程?核心執行排程程式的條件 滿足其一即可 cpu排程方式,是否搶占 核心態 使用者態 2 排程原則 2.1 排程策略 2.2 程式執行模型 2.3 比較排程演算法的準則 2.4 吞吐量 vs 延遲 2.5 公平的目標 3 排程演算法 ...