處理及排程與死鎖
1.處理機排程:多道程式環境下,動態的把處理機分配給就緒佇列中的乙個程序使之執行。
2.提高處理機的利用率、改善系統效能,很大程度上取決於處理機排程的效能。
3.處理機排程便成為os設計的中心問題之一。分配的任務由處理機排程程式完成。
一.處理機排程的基本概念
作業進入系統駐留在外存的後備佇列上,再至調入記憶體執行完畢,可能要經歷下述**排程。
1.高階排程(high scheduling)(管理的方面比較多)
又稱作業排程或長程排程(long-term scheduling),接納排程(admission scheduling)
主要在早期批處理階段,處理在外存上的作業。
1)決定外存後備佇列中的哪些作業調入記憶體;
2)為它們建立程序、分配必要的資源;
3)將新建立的程序排在就緒佇列上,準備執行。
ps:外存的作業形成佇列,排程在佇列中進行選擇,選擇後建立程序。
2.中級排程(intermediate-level scheduling)
又稱交換排程或中程排程(medium-term scheduling)
引入目的:提高記憶體利用率和系統吞吐量。根據條件將一些程序調出或再調入記憶體。
3.低階排程(low level scheduling)
也稱為程序排程、微觀排程或短程排程(short-term scheduling)
決定記憶體就緒佇列中的哪個程序獲得處理機,進行分配工作。是最基本的一種排程,在三種基本os中都有。
程序排程的方式:非搶占方式、搶占方式
|程序排程方式 |程序排程時機 |特點
|非搶占方式 |程式完成;發生某事件阻塞;|實現簡單、系統開銷小;功能也簡單,適用於大多數批處理os,但在要求較嚴格的實時系統,不宜採用該方式
|搶占方式 | 程式完成;發生某事件阻塞;新程序就緒; |搶占的原則有很多種:優先權高的可以搶占優先順序低的程序的處理機。短作業(程序)可以搶占長作業(程序)的處理機。各程序按時間片執行,乙個時間片用完時重新進行排程。
排程程式的任務職能:排程和分派。
(1) 記錄系統中所有程序的有關情況
(2) 確定分配處理機的原則
(3) 分配處理機給程序
(4) 從程序收回處理機
ps:1.三種排程的頻率和複雜度
程序排程:執行頻率最高,演算法不能太複雜,以免占用太多的cpu時間。分時系統通常10~100ms便進行一次。
作業排程:乙個作業執行完畢退出系統時即觸發重新排程乙個新作業入記憶體,週期較長,大約幾分鐘一次。因而也允許作業排程演算法花費較多的時間。
中級排程:執行頻率基本上介於上述兩種排程之間。
2.三種排程程式的比較
排程型別 執行頻率 執行時間 演算法複雜性
程序排程 高 短 低
中程排程 中等 較短 中等
作業排程 低 長 高
二.排程佇列模型
不論高階、中級或者低階排程,都涉及到程序佇列,由此形成了三類排程佇列模型。從這三種方式中體驗排程的過程。
① 僅有程序排程的排程佇列模型
② 具有高階和低階排程的排程佇列模型
③ 同時具有**排程的排程佇列模型
1)僅有程序排程的排程佇列模型
常見情況:分時系統。(時間片排程:先來先入隊)
通常僅設定程序排程,使用者鍵入的命令和資料,都直接送入記憶體。
排程物件:處於就緒狀態的程序。
組織形式:棧、樹或乙個無序鍊錶
用何種形式取決於os型別和採用的排程演算法。如:分時系統中把就緒程序組織成fifo佇列形式:按時間片輪轉方式執行。
程序排程過程中每個程序在執行時按規定的時間片演算法,在給定時間片內任務有三種執**況:
① 完成工作,釋放處理機進入完成狀態
② 未完成,將該任務再放入就緒佇列末尾
③ 因某事件而被阻塞,被os放入阻塞佇列
2)具有高階和低階排程的排程佇列模型
批處理系統中,還需要作業排程
3)同時具有**排程的排程佇列模型
引入中級排程後,程序的狀態變化:
就緒狀態:分為記憶體就緒和外存就緒。
阻塞狀態:分為記憶體阻塞和外存阻塞。
中級排程使程序在上述狀態間變化,並使資料在內外存間互換。
三、選擇排程方式和排程演算法的若干準則
不同的情況和物件需求不同,適用的方式和演算法也不同,所以沒有哪種演算法是最好的。
1)面向使用者的準則
周轉時間短:
針對批處理系統的效能指標。作業從提交到完成所經歷的時間。
響應時間快:針對分時系統。使用者輸入乙個請求(如擊鍵)到系統給出首次響應(如螢幕顯示)的時間
均衡性:系統響應時間的快慢與使用者所請求的複雜性相適應。
截止時間的保證:針對實時系統的效能指標。開始截止時間和完成截止時間。任務必須按規定的時間開始或完成,排程方式和演算法必須能保證該要求。
優先權準則:三大基本os在排程演算法的選擇時都可遵循。可以使關鍵任務達到更好的指標。
2)面向系統的準則
系統吞吐量高:批處理系統的重要指標。
單位時間內所完成的作業數,跟作業本身(與作業平均長度密切相關)和排程演算法都有關係;
處理機利用率好(主要針對大中型主機)
各類資源的平衡利用(主要針對大中型主機)
不同系統需求各有側重,所以在選擇演算法上也有不同。
各系統的需求情況:
批處理系統(作業量小的先做):平均周轉時間短、系統吞吐量高、處理機利用率好。
分時系統:響應時間快、均衡。
實時系統:截至時間的保證、可**性。
ps:1.時長的表示:
1)cpu執行用時ts
2)總的等待時間tw = 在後備佇列中等待 + 就緒佇列上等待+ 阻塞佇列中等待(等待i/o操作用時)
3)周轉時間t=ts+tw
4)帶權周轉時間w= t/ts
5)平均周轉時間、平均帶權周轉時間(n個作業求平均)
2.處理機的利用率就是cpu的真正工作時間。
作業系統第三章概要
處理機排程 多道程式環境下,動態的把處理機分配給就緒佇列中的乙個程序使之執行。提高處理機的利用率 改善系統效能,很大程度上取決於處理機排程的效能。作業進入系統駐留在外存的後備佇列上,再至調入記憶體執行完畢,可能要經歷下述 排程 高階排程又稱作業排程或長程排程 接納排程 中級排程又稱交換排程或中程排程...
作業系統習題(第三章)
第三章互斥與同步 1.設有n個程序,共享乙個資源r,但每個時刻只允許乙個程序使用r。演算法如下 設定乙個整型陣列flag n 其每個元素對應表示乙個程序對r的使用狀態,若為0表示該程序不在使用r,為1表示該程序要求或正在使用r,所有元素的初值均為0。process pi 2.有三個程序r,m,p,r...
作業系統 第三章 1 排程
1 處理機排程 多道程式環境下,動態的把處理機分配給就緒佇列中的乙個程序使之執行。2 高階排程 外存進記憶體 又稱作業排程或長程排程 接納排程 批處理系統 作業進入系統後先駐留外存,故需要有作業排程。分時系統 為及時響應,作業由終端直接送入記憶體,故不需作業排程。實時系統中,通常也不需作業排程。3 ...