第三章 處理機調度與死鎖

第三章 處理機調度與死鎖
1.高級調度又稱爲作業調度或長程調度,有時也稱爲接納調度,將外存上處於後備隊列上的作業調入內存,並創建進程、分配資源,安排在就緒隊列上
2.高級調度執行作業調度時做出兩個決定:接納多少個作業(多道程序度)、接納哪些作業 **
3.作業調度算法:先來先服務、短作業優先、優先權高優先
4.低級調度也稱爲
進程調度或短程調度**
5.常見的低級調度有非搶佔方式和搶佔方式兩種
6.引起進程調度的因素正在執行的進程執行完畢,或因發生某事件而不能再繼續執行、執行中的進程因提出I/O請求而暫停執行;在進程通信或同步過程中執行了某種原語操作,如P操作(wait操作)、Block原語等
7.低級調度缺點:不適合時間要求嚴格的實時系統
8.搶佔式調度主要有以下原則:優先權原則、短作業(進程)優先原則、時間片原則(適用於分時系統)
9.搶佔方式特點:它增加了進程調度的次數,增加了系統的開銷,但保證了系統的實時性
10.中級調度又稱中程調度
11.引入中級調度的主要目的,是爲了提高內存利用率和系統吞吐量
12.三種調度運行頻率:低級調度>中級調度>高級調度
13.調度隊列模型:1.僅有進程調度的調度隊列模型2.具有高級和低級調度的調度隊列模型3.同時具有三級調度的調度隊列模型
14.僅有進程調度的調度隊列模型:在分時系統中,通常僅設有進程調度,用戶鍵入命令和數據,都直接進入內存,系統可以把就緒進程組織成一個隊列
每個進程在執行時,可能有以下三種情況
①進程在給定時間片內已完成,釋放處理機後爲完成狀態
②進程在時間片內未完成,進入就緒隊列末尾
③進程在執行期間因某事件而阻塞,進入阻塞隊列
15.
在這裏插入圖片描述
16.2.具有高級和低級調度的調度隊列模型:在批處理系統中,不僅需要進程調度,而且還要有作業調度
該模型與上一模型主要區別在於:
(1)就緒隊列的形式
在批處理系統中,常用優先權隊列。進程進入就緒隊列時,按優先權高低插入相應位置
(2)設置多個阻塞隊列
根據事件的不同設置多個隊列提高效率
17.在這裏插入圖片描述
18.
在這裏插入圖片描述
19. 選擇調度方式和調度算法的若干準則 1. 面向用戶的準則2. 面向系統的準則
20.平均週轉時間:作業的週轉時間T與系統爲它提供服務的時間TS之比
21.2. 面向系統的準則(1)系統吞吐量高(2)處理機利用率高(3)各類資源的平衡利用

22.調 度 算 法1.先來先服務調度算法(FCFS)、2.短作業(進程)優先調度算法SJ§F、高優先權優先調度算法、高響應比優先調度算法(HRF) 1.時間片輪轉法2.多級反饋隊列調度算法
23.3.多級反饋隊列調度算法的性能(1)終端型作業用戶(2)短批處理作業用戶(3)長批處理作業用戶實現實時調度的基本條件:1.提供必要的信息2.系統處理能力強3.採用搶佔式調度機制4.具有快速切換機制
24.必要的信息(1)就緒時間
該任務成爲就緒狀態的起始時間。
(2)開始截止時間和完成截止時間
(3)處理時間
指一個任務從開始執行直至完成所需要的時間。
(4)資源要求
執行時所需資源。
(5)優先級
重大任務,賦予“絕對”優先級,無重大影響,可賦予“相對”優先級。
20. 在實時系統中,通常都有着多個實時任務。若處理機的處理能力不夠強,則有可能因處理機忙不過來而使某些實時任務不能得到及時處理,從而導致發生難以預料的後果。假定系統中有m個週期性的硬實時任務,它們的處理時間可表示爲Ci,週期時間表示爲Pi,則在單處理機情況下,必須滿足下面的限制條件,系統纔是可調度的。
21. 當一個優先權更高的任務到達時,允許將當前任務暫時掛起,而令高優先權任務立即投入運行,這樣便可滿足該硬實時任務截止時間的要求。但這種調度機制比較複雜。
對於一些的實時系統,如果能預知任務的開始截止時間,則對實時任務的調度可採用非搶佔調度機制,以簡化調度程序和對任務調度時所花費的系統開銷。但在設計這種調度機制時,應使所有的實時任務都比較小,並在執行完關鍵性程序和臨界區後,能及時地將自己阻塞起來,以便釋放出處理機,供調度程序去調度那種開始截止時間即將到達的任務。
22. 該機制應具有如下兩方面的能力:
(1)對外部中斷的快速響應能力。
爲使在緊迫的外部事件請求中斷時系統能及時響應,要求系統具有快速硬件中斷機構,還應使禁止中斷的時間間隔儘量短,以免耽誤時機(其它緊迫任務)。
(2)快速的任務分派能力。
在完成任務調度後,便應進行任務切換。爲了提高分派程序進行任務切換時的速度,應使系統中的每個運行功能單位適當的小,以減少任務切換的時間開銷。
28.根據實時任務性質的不同,可將實時調度算法分爲:
(1)硬實時調度算法
(2)軟實時調度算法
按調度方式的不同,可將實時調度算法分爲:
(1)非搶佔調度算法
(2)搶佔調度算法
因調度程序調度時間的不同,可將實時調度算法分爲:
(1)靜態調度算法
(2)動態調度算法
在多處理機環境下,可將實時調度算法分爲:
(1)集中式調度算法
(2)分佈式調度算法
29.1.非搶佔式調度算法
(1)非搶佔式輪轉調度算法
(2)非搶佔式優先調度算法
30.2.搶佔式調度算法(1)基於時鐘中斷的搶佔式優先權調度算法(2)立即搶佔(Immediate Preemption)的優先權調度算法
31.常用的幾種實時調度算法1.最早截止時間優先EDF(Earliest Deadline First)算法2.最低鬆弛度優先即LLF(Least Laxity First)算法
32.多處理器系統的類型1.根據多處理器之間耦合的緊密程度分爲:(1)緊密耦合(Tightly Coupled)MPS(MultiProcessor System)
通常是通過高速總線或高速交叉開關,來實現多個處理器之間的互連
共享主存儲器系統和I/O設備,並要求將主存儲器劃分爲若干個能獨立訪問的存儲器模塊,以便多個處理機能同時對主存進行訪問。系統中的所有資源和進程,都由操作系統實施統一的控制和管理
(2)鬆散耦合(Loosely Coupled)MPS
在鬆散耦合MPS中,通常是通過通道或通信線路,來實現多臺計算機之間的互連
每臺計算機都有自己的存儲器和I/O設備,並配置了OS來管理本地資源和在本地運行的進程。因此,每一臺計算機都能獨立地工作,必要時可通過通信線路與其它計算機交換信息,以及協調它們之間的工作
2.根據系統中所用處理器的相同與否,可將MPS分爲如下兩類
(1)對稱多處理器系統SMPS(Symmetric MultiProcessor System)
在系統中所包含的各處理器單元,在功能和結構上都是相同的,當前的絕大多數MPS都屬於SMP系統
例如,IBM公司的SR/6000 Model F50,便是利用4片Power PC處理器構成的。
(2)非對稱多處理器系統
在系統中有多種類型的處理單元,它們的功能和結構各不相同,其中只有一個主處理器,有多個從處理器

33.進程分配方式1.對稱多處理器系統中的進程分配方式(1)靜態分配(Static Assigenment)方式(2)動態分配(Dynamic Assgement)方式
34.(1)靜態分配(Static Assigenment)方式
一個進程從一開始執行到完成都被固定地分配到一個處理器上去執行。必須爲每個處理器單獨安排一個就緒隊列。
優點:進程調度的開銷小
缺點:會使各處理器的忙閒不均
35.
(2)動態分配(Dynamic Assgement)方式
在系統中設置公共就緒隊列,分配時可將進程分配到任一個處理器上。
消除了各處理器忙閒不均的現象,但對於鬆耦合系統,在一個處理器A上的進程轉至B上運行時,必須將A處理器所保存的信息傳給B
優點:消除了各個處理器忙閒不均的現象
36.
2.非對稱MPS中的進程分配方式
對於非對稱MPS,其OS大多采用主—從(Master-Slave)式OS,即OS的核心部分駐留在一臺主機上(Master),而從機(Slave)上只是用戶程序,進程調度只由主機執行
每當從機空閒時,便向主機發送一索求進程的信號,然後,便等待主機爲它分配進程
在主機中保持有一個就緒隊列,只要就緒隊列不空,主機便從其隊首摘下一進程分配給請求的從機
從機接收到分配的進程後便運行該進程,該進程結束後從機又向主機發出請求
優點:系統處理比較簡單
缺點:有“瓶頸”(主機)
37.進程(線程)調度方式1.自調度(Self-Scheduling)方式(1)自調度機制2.成組調度(Gang Scheduling)方式 3.專用處理器分配(Dedicated Processor Assignment)方式
38.(2)自調度方式的優點
系統中的公共就緒隊列可按照單處理機系統中所採用的各種方式加以組織;其調度算法也可沿用單處理機系統所用的算法,亦即,很容易將單處理機環境下的調度機制移植到多處理機系統中,故它仍然是當前多處理機系統中較常用的調度方式
只要系統中有任務,或者說只要公共就緒隊列不空,就不會出現處理機空閒的情況,也不會發生處理器忙閒不均的現象,因而有利於提高處理器的利用率
39.(3)自調度方式的缺點
瓶頸問題
整個系統中只設一個就緒隊列,各處理器必須互斥的訪問
低效性
當線程阻塞後重新就緒時,只能進入這個就緒隊列,但卻很少可能在原來的處理器上運行,要重新拷貝運行數據
線程切換頻繁
互相合作的線程很難同時運行
40.2.成組調度(Gang Scheduling)方式
將一個進程中的一組線程分配到一組處理器上去執行
在成組調度時,如何爲應用程序分配處理器時間
(1)面向所有應用程序平均分配處理器時間
(2)面向所有線程平均分配處理器時間
41.3.專用處理器分配(Dedicated Processor Assignment)方式
在一個應用程序執行期間,專門爲該應用程序分配一組處理器,每個線程一個,這組處理器爲該程序專用,直至完成
這種方式的主要理由如下
在含有幾百或幾個處理器的系統中,每個處理器的投資只佔很小一部分,性能的重要性要高於對單個處理器利用率的考慮
每個進程或線程專用一個處理器可以完全避免進程或線程的切換

42.產生死鎖的原因(1)競爭資源引起進程死鎖2.進程推進順序不當引起死鎖
可剝奪和非剝奪性資源
可剝奪性資源是指進程在獲得這類資源後,該資源可以再被其他進程或系統剝奪,如處理機、內存等
不可剝奪性資源是指當系統把這類資源分配給某個進程後,再不能強行收回,只能在進程用完後自行釋放,如磁帶機、打印機等
競爭非剝奪性資源
系統中的非剝奪性資源由於數量有限而不能滿足進程運行的需要,進程在運行過程中因爭奪這些資源而限入僵局
43.
競爭臨時性資源
臨時性資源區別於永久性資源,指由一個進程產生,被另一進程使用後就再也無用的資源,也稱爲消耗性資源
44.產生死鎖的必要條件1.互斥條件
進程對所分配到的資源進行排它性的使用。臨界(獨佔)資源,
即一次只有一個進程可以使用資源。
2.請求和保持條件
進程已經至少保持了一個資源,但又提出了新的資源請求,而
該資源又已被其他進程佔有。
3.不剝奪條件
進程已獲得的資源在未使用完之前不能被剝奪。
4.環路等待條件
在發生死鎖時,必然存在一個進程–資源的環形鏈。
45.處理死鎖的基本方法(1)預防死鎖。
通過設置限制條件,破壞產生死鎖的必要條件的一個或幾個。
(2)避免死鎖。
在分配資源時,用某種方法防止系統進入不安全的狀態。
(3)檢測死鎖。
確定與死鎖有關的進程和資源,採取措施,清除死鎖。
(4)解除死鎖。
與檢測死鎖配套的一種措施。
46.預防死鎖摒棄“請求和保持”條件
2. 摒棄“不剝奪”條件
3. 摒棄“環路等待”條件
47.3.摒棄“環路等待”條件
系統將所有資源按類型分配序號並排隊(例如打印機爲1、磁帶機爲2、磁盤爲3、等等)。
所有進程申請資源必須按序號遞增的順序
對比前兩種方法:資源利用率和系統吞吐量較高
缺點:(1)序號固定,限制了新設備類型的增加
(2)資源浪費(不像前邊那麼嚴重,考慮進程使用資源順序了)
(3)限制用戶自由編程(因限制了序號)
48.死鎖的解除(1)剝奪資源
從其他進程剝奪足夠的資源給死鎖進程,以解除死鎖狀態
(2)撤消進程
簡單方法:撤消所有死鎖進程
溫和方法:按照某種順序逐個地撤消進程,直至有足夠的資源可用,使死鎖狀態消除
撤消進程策略
1)進程的優先級低。
2)撤銷代價小。
3)後來的先撤。
49.2、某一系統中有4個進程,有3種資源(R1,R2,R3),進程的資源分配“瞬間狀態”爲:
最大需求 已分配 可用資源 (Max) (Allocation) (Available)
P1 3 2 2 1 0 0 1 1 2
P2 6 1 3 5 1 1
P3 3 1 4 2 1 1
P4 4 2 2 0 0 2
使用銀行家算法回答下列問題:
(1)計算數組還需要(Need)?
(2)系統此時是否安全?
(3)如果進程P2要求(1,0,1),系統能否立即滿足進程的要求?爲什麼?
(4)如果進程P1要求(1,0,1),系統能否立即滿足進程的要求?爲什麼?(不算(3))
(1)需要(Need)
最大需求 已分配 可用資源 (Max) (Allocation) (Available)
P1 3 2 2 1 0 0 1 1 2
P2 6 1 3 5 1 1
P3 3 1 4 2 1 1
P4 4 2 2 0 0 2
在這裏插入圖片描述
50.在這裏插入圖片描述
51.在這裏插入圖片描述
52.在這裏插入圖片描述
53.在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章