面試知識儲備 作業系統 處理機排程與死鎖

2021-07-04 23:51:44 字數 3294 閱讀 5838

乙個作業從進入系統並駐留在外存的後備佇列開始,直至獲得處理器執行完成時一共要經過**排程:作業排程(高階排程)——中級排程(為了提高記憶體利用率)——記憶體排程(低階排程)

高階排程(作業排程)

根據某種演算法,將外存上處於後備佇列中那些作業調入記憶體;即排程的物件是作業。

作業:可理解成程式,但是比程式的概念更廣泛。作業的執行過程為:編譯(若干目標作業)——連線裝配(連線成可執行的目標程式)——執行(讀入記憶體並執行)

作業控制塊(jcb):

1、作業在系統中存在的標誌

2、作業進入系統時,系統會為每個作業建立乙個jbc,並插入到相應的作業後備佇列中(外存)

3、根據某種演算法,將作業調入記憶體,回抽jbc資源

作業排程

1、流程:選取作業——建立程序和分配資源——插入到就緒佇列

2、接納多少個作業:多道程式度,級允許多少個作業同時在記憶體中執行

3、接納哪些作業:先來先服務演算法 + 短作業優先演算法 + 基於作業優先順序 + 響應比高者youxina

4、終端操作(譬如說鍵盤)和實時系統不需要作業排程而直接進入記憶體。

低階排程

低階排程功能:決定就緒佇列中哪個程序獲得處理機

程序排程方式

1、非搶占方式:除非以下情況發生時即可發生搶占

①、執行完畢

②、io請求

③、程序同步

2、搶占方式

①、優先權原則

②、短作業優先

③、時間片原則

中級排程

應使那些戰士不嫩執行的程序不再占用記憶體資源,將該程序由就緒狀態切換到外存。

選擇排程方式和排程演算法的準則

周轉時間短:周轉時間為:作業提交系統開始到執行結束的之間間隔(作業在外存等待排程的時間 + 程序在就緒佇列上等待的時間 + cpu執行的時間 + io操作的時間)

響應時間快

截止時間保證

優先權先來先服務排程演算法

優缺點:有利於長作業(程序)、不利於短作業(程序)

用平均帶權周轉時間來衡量整個排程演算法的有效性

短作業優先演算法

優缺點:對長作業不理,且有可能導致長作業長期不執行

高優先權排程演算法

非搶占式優先權演算法/搶占是優先權演算法

靜態優先權演算法/動態優先權演算法(隨著程序的推進或者等待的時間增加而改變優先權)

適用於實時系統

高響應比優先排程演算法

列表內容

短作業優先演算法 +高優先權演算法(等待時間越長,優先權動態增加)

長短作業兼顧

基於時間片輪轉的排程演算法

基本原理:為就緒佇列中每乙個程序執行固定時間片的時間,執行完固定時間片時間後,中斷,插入到就緒佇列的對尾

時間片大小的確定

1、太小:有利於短作業,但要頻繁切換

2、太大:退化成先來先服務演算法

3、綜合:餘額大於一次電影互動所需的時間

多級反饋佇列排程演算法

(這個排程演算法好:長短作業兼顧、有較好的響應時間)

有多個就緒佇列,優先順序從上到下降低、時間片從上到下公升高

程序進入記憶體首先插如到就緒佇列中1中的隊尾,如果在乙個時間片內沒有完成,則插入到第二個就緒佇列的對尾

就緒佇列1處理完成後才會去處理就緒佇列2

在處理第i個就緒佇列中的程序時,如果有新的程序插入到就緒佇列1中,會發生搶占

(在規定的時間內完成任務)

實現實時排程的基本條件

系統向排程程式提供的資訊

1、就緒時間

2、開始截止時間(在這個時間點之前任務一定要開始執行)和完成截止時間(在這個時間點之前,任務一定要執行結束)

3、處理時間

4、優先順序:例如任務過了開始截止時間還沒開始執行,就應設定為絕對優先順序

系統的處理能力要強或者採用多處理機系統

採用搶占是呼叫機制

具有快速切換機制

1、對外部中斷的快速響應能力

2、快速任務分配能力

按實時排程演算法的分類

非搶占式排程演算法

1、非搶占式輪轉排程演算法:每個人物分配乙個時間片時間執行

2、非搶占式優先排程演算法

搶占是排程演算法

1、基於時鐘中斷的搶占式優先權演算法(非立即搶斷)

2、立即搶斷的優先權排程演算法

常用的幾種實時排程演算法

最早截止時間優先演算法

截止時間越早,優先順序越高

最低鬆弛度優先演算法

任務的鬆弛度=必須完成的時間 — 任務本本身執行的時間 - 當前時間

每執行完乙個任務,其它任務的鬆弛度都可能會變化,要重新計算。

產生死鎖的原因

競爭資源:例如程序a有已經有資源a,但還要資源b才能執行;程序b有已經有資源b,但還要資源a才能執行;這就造成了死鎖。

1、競爭可剝奪性資源(cpu + 記憶體,這個不會造成死鎖)

2、競爭非剝奪性資源(磁帶機 + 印表機)

3、競爭臨時性資源(由程序產生的資源)

程序推進順序不當

產生死鎖的必要條件

互斥條件:例如排他使用臨界資源

請求和保持條件:自己占有資源還請求其他資源又不釋放自己的資源

不剝奪條件:資源使用完之前不釋放

環路等待條件

處理死鎖的基本方法

預防死鎖:破壞產生死鎖四個必要條件中的乙個

避免死鎖:在資源分配的時候防止進入死鎖狀態

檢測死鎖

解除死鎖

預防死鎖的方法

摒棄請求和保持條件:資源全分配、全釋放

摒棄不剝奪條件:有乙個資源a,再要乙個資源b,要不到則釋放a

摒棄環路等待條件:為資源編號,申請是按編號進行分配資源

系統安全狀態

在分配資源的時候判斷系統是否屬於安全狀態,如果不安全免責不分配資源

資源分配圖

資源分配圖的簡化

死鎖的解除:剝奪資源 + 撤銷程序

作業系統 處理機排程概念

乙個作業被提交後,必須經過處理機排程,才能獲得處理機執行,通常經過三個排程 高階排程 高階排程,長程排程 中級排程 中程排程 低階排程 短程排程 根據某種演算法,把外村上處於後備佇列中的那些作業調入記憶體,排程物件是作業 就是一些程式,資料,還有一些作業說明書。作業需要執行哪些步驟執行完。每乙個步驟...

作業系統之處理機排程

1.處理機即計算機的處理器,簡單理解就是cpu,多處理機指多核,即多個cpu同時工作,隨著工藝的提高,多個cpu可以整合在一塊晶元上,比如兩核,四核處理器。2.作業和程序的區別 1 作業是乙個比程式更加廣泛的概念,包含程式 資料和作業說明書 2 程序包含pcb 程式和資料集合 所以程式是程序的一部分...

作業系統筆記 處理機排程

處理機排程概念 1 多道程式環境下,動態的把處理機分配給就緒佇列中的乙個程序使之執行。2 提高處理機的利用率 改善系統效能,很大程度上取決於處理機排程的效能。3 處理機排程便成為os設計的中心問題之一。分配的任務由處理機排程程式完成。排程排程的實質就是一種資源分配。不同的系統和系統目標,通常採用不同...