處理機排程與死鎖
在多道程式環境下,記憶體中存在著多個程序,起數目往往多餘處理機數目。這就要求系統能按照某種演算法,動態地將處理機分配給處於就緒狀態的乙個程序,使之執行。分配處理機的任務是由處理機排程程式完成的。對於大型系統執行時的效能,如系統吞吐量,資源利用率,作業周轉時間或響應的及時性等,在很大程度上都去決議處理機排程效能的好壞。
處理機排程演算法:根據處理機分配策略所規定的處理機分配演算法
處理機排程層次:
高階排程:又稱長程排程或作業排程,主要功能是根據某種演算法,為外存作業建立程序,分配資源。高階排程主要用於多道批處理系統中,而在分時和實時系統中不設定高階排程
低階排程:又稱程序排程或短程排程,排程的物件是程序或核心級執行緒。主要功能是根據某種演算法,分配處理機給就緒佇列中的某個程序。在多道批處理,分時和實時三種型別的os中都必須配置這級排程
中級排程:又稱中誠排程或記憶體排程。引入記憶體排程的只要目的是提高記憶體利用率和系統吞吐量。把那些暫時不能執行的程序調出外存等待。當他們具備執行條件且記憶體又有空閒時,由中級排程將其調入記憶體。
處理機排程演算法的目標:
資源利用率:cpu利用率=cpu有效工作時間 / ( cpu有效工作時間+cpu空閒等待時間 )
公平性平衡性
策略強制執行
作業與作業排程:
作業:作業是乙個比程式更廣泛的概念。它不僅包含了通常的程式和資料,而且還配有乙份作業說明書,系統根據該說明書對程式執行進行控制
作業控制塊jcb:作業在系統中存在的標識,其中儲存了系統對作業進行管理和排程所需的全部資訊。
通常在jcb中包含的內容有:
作業標識
使用者名稱
使用者賬號
作業型別(cpu繁忙型,i/o繁忙型,批量型,終端型)
作業狀態
排程資訊(優先順序,作業執行時間)
資源需求(預計執行時間,要求記憶體大小)
資源使用情況
作業執行過程:當乙個作業進入系統,由作業註冊程式為該作業建立jcb。在根據作業型別,將它放到相應的作業後背佇列中等待排程,排程程式根據排程演算法將他們裝入記憶體。執行期間,系統按照jcb中的資訊和作業說明書對作業進行控制。
作業執行的三個狀態:
收容階段
執行階段
完成階段
排程演算法:
先來先服務排程演算法 fcfs (first-come first-served)
缺點:不能反映作業緊迫程度,對短作業非常不利
短作業優先排程演算法 sjf (short job first)
缺點:必須預支作業的執行時間,對長作業不理,無法實現人機互動,未考慮作業緊迫程度
優先順序排程演算法 psa (priority-scheduling alogrithm)
高響應比優先排程演算法 hrrn (highest response ratio next)
優先權= (等待時間+要求服務時間)/ 要求服務時間 = 響應時間 / 要求服務時間
程序排程:
程序排程的任務:
儲存處理機的現場資訊
按某種演算法選取程序
把處理器分配給程序
程序排程機制
排隊器:為了提高程序排程的效率,應事先將系統中所有就緒程序按照一定策略排成乙個或多個佇列,以便排程程式能最快找到它
分派器:分派器依據程序排程程式所選的程序,將其從就緒佇列中取出,然後進行從分派器選出到程序間的上下文切換,將處理機分配給新選出的程序
上下文切換器:包含兩次上下文切換操作
儲存當前程序上下文,裝入分派程式上下文
一處分派程式上下文,裝入所選程序上下文
程序排程方式:
非搶占式方式:不可搶占,只有當前程序執行完畢或阻塞才將處理器交出。適用於大多數批處理系統,但不能用於分時系統和大多數實時系統
搶占式方式:允許排程程式根據某種原則,去暫停正在執行的程序,將已分配給該程序的處理機重新分配給另乙個程序。
搶占遵循一下原則:
優先權原則
短程序有限原則
時間片原則
輪轉排程演算法:系統將降所有的就緒程序按fcfs策略排成乙個就緒佇列,按照時間片輪轉排程
時間片大小的確定對系統效能有著很大的影響
優先順序排程演算法
非搶占式優先順序排程演算法
搶占式優先順序排程演算法
多佇列排程演算法
多級反饋佇列排程演算法(目前公認的一種較好的程序排程演算法):在第一佇列時間片內未完成則進入第二對了
描述如下:
設定多個就緒佇列:第一佇列優先順序最高,時間片短,第二個次之,時間片為第一佇列的一倍,第三的時間片長度則是第二的一倍
每個佇列採用fcfs演算法
按佇列優先順序排程:第一佇列全部呼叫完才呼叫第二佇列
排程演算法效能:在多級反饋佇列排程演算法中,如果規定第乙個佇列的時間片略大於大多數人機互動所需的處理時間,便能較好地滿足各種型別使用者的需求
終端型使用者:最好最第一佇列規定的時間片中完成使用者提交的互動性作業
短批處理作業使用者
長批處理作業使用者
基於公平原則的排程演算法:以上介紹的排程演算法只是保證優先執行,而未考慮作業占用了多少處理機時間,也未考慮排程的公平性
保證排程演算法
公平分享排程演算法:分配給每個程序相同的處理機時間,對程序而言公平,對使用者就不公平了。
實時排程:
最早截止時間優先演算法 edf
最低鬆弛度優先演算法 llf
死鎖資源:
可重用性資源和消耗性資源
可搶占性資源和不可搶占性資源
死鎖起因:
競爭不可搶占性資源引起死鎖
競爭可消耗資源引起死鎖
程序推進順序不當引起死鎖
產生死鎖的必要條件:產生死鎖必須同時具備以下四個必要條件
互斥條件
請求和保持條件
不可搶占條件
迴圈等待條件
處理死鎖的方法:
預防死鎖
破環「請求和保持條件」
第一種協議:所有資源一次分配。缺點:資源嚴重浪費,程序經常會發生飢餓現象
第二種協議:第一種的改進,只需獲得執行初期所需的資源後便可執行
破壞不可搶占:類似讓權等待
破壞迴圈等待:
避免死鎖:
檢測死鎖:
解除死鎖
作業系統總結 處理機排程與死鎖
處理機排程 1 高階排程 2 低階排程 低階排程也稱為程序排程 短程排程,它所排程的物件為程序 低階排程用於決定就緒佇列中的哪個程序應獲得處理機,然後再由分派程式執行把處理機分配給該程序的具體操作。功能 三個基本機制 程序排程方式 中級排程 中級排程又稱中程排程。引入中級排程的主要目的是為了提高記憶...
作業系統筆記 處理機排程
處理機排程概念 1 多道程式環境下,動態的把處理機分配給就緒佇列中的乙個程序使之執行。2 提高處理機的利用率 改善系統效能,很大程度上取決於處理機排程的效能。3 處理機排程便成為os設計的中心問題之一。分配的任務由處理機排程程式完成。排程排程的實質就是一種資源分配。不同的系統和系統目標,通常採用不同...
面試知識儲備 作業系統 處理機排程與死鎖
乙個作業從進入系統並駐留在外存的後備佇列開始,直至獲得處理器執行完成時一共要經過 排程 作業排程 高階排程 中級排程 為了提高記憶體利用率 記憶體排程 低階排程 高階排程 作業排程 根據某種演算法,將外存上處於後備佇列中那些作業調入記憶體 即排程的物件是作業。作業 可理解成程式,但是比程式的概念更廣...