第三章 處理機調度與死鎖

1.處理機調度的基本概念

1)高級調度:

又稱作業調度或長程調度(Long-Term Scheduling),接納調度(Admission Scheduling)

作業調度決定的細節

接納多少作業——取決于多道程序度。應根據系統的規模和運行速度等情況綜合考慮。

接納哪些作業——取決于采用的調度算法。如先來先服務,短作業優先等

系統運行并不一定存在高級調度

批處理系統:作業進入系統后先駐留外存,故需要有作業調度。

分時系統:為及時響應,作業由終端直接送入內存,故不需作業調度。

實時系統中,通常也不需作業調度。

2)低級調度:

也稱為進程調度、微觀調度或短程調度(Short-Term Scheduling)。決定內存就緒隊列中的哪個進程獲得處理機,進行分配工作。是最基本的一種調度,在三種基本OS中都有。

(1)進程調度方式

非搶占方式(Non-preemptive Mode)

一旦處理機分配給某進程,該進程一直執行。決不允許其他進程搶占已分配運行進程的處理機。

搶占方式(Preemptive Mode)

允許調度程序根據某種原則,暫停某個正在執行的進程,將處理機重新分配給另一進程。

(2)進程調度方式比較

(3)中級調度

又稱交換調度或中程調度(Medium-Term Scheduling)

引入目的:提高內存利用率和系統吞吐量。根據條件將一些進程調出或再調入內存。

(4)調度隊列模型

僅有進程調度的調度隊列模型: 分時系統

具有高級和低級調度的調度隊列模型:批處理系統中,還需要作業調度

同時具有三級調度的調度隊列模型

(5)選擇調度方式和調度算法的若干準則

① 面向用戶的準則:

周轉時間短、響應時間快、均衡性、截止時間的保證、優先權準則

② 面向系統的準則:

系統吞吐量高、處理機利用率好(主要針對大中型主機)、各類資源的平衡利用(主要針對大中型主機)

2.常用調度算法

1)先來先服務調度算法FCFS

一種最簡單的調度算法,按先后順序進行調度。既可用于作業調度,也可用于進程調度。

2)短作業(進程)優先調度算法SJF/SPF(搶占式和非搶占式)

SJF/SPF的不足:

①. 對短作業有利,但同時造成了對長作業的不利。

②.由于作業(進程)的長短含主觀因素,不一定能真正做到短作業優先。

?③.未考慮作業的緊迫程度,因而不能保證緊迫性作業(進程)的及時處理。

3)高優先權優先調度算法HPF (搶占式和非搶占式)

照顧緊迫性作業,使其獲得優先處理而引入調度算法。常用于批處理系統中的作業調度算法,以及多種操作系統中的進程調度算法

(1)優先權的類型

靜態優先權:創建進程時確定,整個運行期間保持不變。一般利用某一范圍的一個整數來表示,又稱為優先數。

動態優先權:創建進程時賦予的優先權可隨進程的推進或隨其等待時間的增加而改變。

(2)進程優先權的確定

進程類型、進程對資源的需求、用戶需求

4)高響應比優先調度算法HRRN

HRRN為每個作業引入動態優先權,使作業的優先級隨著等待時間的增加而以速率a提高:

? 優先權 =(等待時間+要求服務時間)/要求服務時間= 響應時間 / 要求服務時間

(1)同時到達的作業優先權相同。

(2)當執行時間相同的作業,優先權的高低決定于其等待時間的長短,也就是先來先服務。

5)基于時間片的輪轉調度算法RR?

分時系統新需求:及時響應用戶的請求;采用基于時間片的輪轉式進程調度算法。

(1)時間片輪轉算法

將系統中所有的就緒進程按照FCFS原則,排成一個隊列。

每次調度時將CPU分派給隊首進程,讓其執行一個時間片。時間片的長度從幾個ms到幾百ms。

在一個時間片結束時,發生時鐘中斷。

調度程序據此暫停當前進程的執行,將其送到就緒隊列的末尾,并通過上下文切換執行當前就緒的隊首進程。

(2)多級反饋隊列算法FB

設置多個就緒隊列,各隊列有不同的優先級,優先級從第一個隊列依次降低。

?賦予各隊列進程執行時間片大小不同, 優先權越高,時間片越短。

6)幾種常用調度算法的比較


3.實時調度

1)實現實時調度的基本條件

提供必要的信息

系統處理能力足夠強

采用搶占式調度機制

具有快速切換機制

2)實時調度算法的分類

非搶占調度算法

搶占式調度算法

3)常用的幾種實時調度算法

(1)最早截止時間優先EDF

根據任務的開始截止時間來確定任務的優先級。截止時間越早,其優先級越高。

(2)最低松弛度優先LLF?

根據任務緊急(或松弛)的程度,來確定任務的優先級。任務的緊急程度越高(松弛度值越小),優先級就越高。

松弛度= 截止完成時間 – 還需執行時間 - 當前時間

可理解為當前時刻到開始截止時刻間的差距,隨著時間的推進,這個差值逐漸變小,任務越來越緊迫。

4.產生死鎖的原因和必要條件

死鎖(Deadlock):指多個進程在運行過程中,因爭奪資源而造成的一種僵局。當進程處于這種狀態時,若無外力作用,它們都將無法再向前推進。

死鎖(Deadlock): 指進程之間無休止地互相等待!

饑餓(Starvation):指一個進程無休止地等待!

1)競爭資源引起進程死鎖

可把系統中的資源分為兩類:

可剝奪和非剝奪性資源

永久性資源和臨時性資源

2)進程推進順序不當引起死鎖

3) 產生死鎖的必要條件

互斥條件:

進程對所分配到的資源進行排他性使用

請求和保持條件:

進程已經保持了至少一個資源,又提出新的資源請求,而新請求資源被其他進程占有只能造成自身進程阻塞,但對自己已獲得的其他資源保持不放,必然影響其他進程。

不剝奪條件:

進程已獲得的資源未使用完之前不能被剝奪,只能在使用完時由自己釋放。

環路等待條件

4)處理死鎖的基本方法

事先預防:

(1)預防死鎖:

(2)避免死鎖:

事后處理:

(3)檢測死鎖

(4)解除死鎖

5.預防死鎖的方法

1)預防死鎖

(1)摒棄“請求和保持”條件

(2)摒棄“不剝奪”條件

(3)摒棄“環路等待”條件

6.死鎖的檢測與解除

當系統為進程分配資源時,若未采取任何限制性措施,則系統必須提供檢測和解除死鎖的手段,為此系統必須:

保存有關資源的請求和分配信息;

提供一種算法,以利用這些信息來檢測系統是否已進入死鎖狀態。

1)死鎖的檢測

檢測時機:

當進程等待時檢測死鎖

定時檢測

系統資源利用率下降時檢測死鎖

2)死鎖定理

利用資源分配圖簡化法來檢測死鎖

3)死鎖檢測算法:

* 每個進程和資源指定唯一編號

* 設置一張資源分配表

? 記錄各進程與其占用資源之間的關系

* 設置一張進程等待表

? 記錄各進程與要申請資源之間的關系

4)死鎖的解除

當發現進程死鎖時,便應立即把它們從死鎖狀態中解脫出來。常采用的方法是:

剝奪資源:

從其他進程剝奪足夠數量的資源給死鎖進程以解除死鎖狀態。

撤銷進程:

最簡單的是讓全部進程都死掉;溫和一點的是按照某種順序逐個撤銷進程,直至有足夠的資源可用,使死鎖狀態消除為止。

5)死鎖處理方法比較


?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,923評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,740評論 3 420
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,856評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,175評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,931評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,321評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,383評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,533評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,082評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,891評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,618評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,319評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,732評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,987評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,794評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,076評論 2 375

推薦閱讀更多精彩內容

  • 做眼鏡私人定制的幾年,感覺每一天都是新鮮的。不僅僅是每一天都不可預知,更是因為會接觸到各種不同性情的客戶。他們有的...
    眼鏡姐姐Lily閱讀 272評論 0 0
  • 今天早上我起床出去了一下,鑫蕾以為我要走,6點多就起床,自己迷迷糊糊的套上衣服就出去找我。我說你起那么早干嘛,不多...
    2021級張鑫澤媽媽閱讀 98評論 0 2
  • 六月,一個充滿了陽光與活力的季節。我總以為我還算有點文采,總能以筆為友,寫些感觸,寫些心情,總是把文字當成一種寄托...
    KING_小雪閱讀 344評論 2 2