乙個作業從進入系統並駐留在外存的後備佇列開始,直至獲得處理器執行完成時一共要經過**排程:作業排程(高階排程)——中級排程(為了提高記憶體利用率)——記憶體排程(低階排程)
高階排程(作業排程)
根據某種演算法,將外存上處於後備佇列中那些作業調入記憶體;即排程的物件是作業。
作業:可理解成程式,但是比程式的概念更廣泛。作業的執行過程為:編譯(若干目標作業)——連線裝配(連線成可執行的目標程式)——執行(讀入記憶體並執行)
作業控制塊(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設計的中心問題之一。分配的任務由處理機排程程式完成。排程排程的實質就是一種資源分配。不同的系統和系統目標,通常採用不同...