CH3 處理機調度與死鎖_第1頁
CH3 處理機調度與死鎖_第2頁
CH3 處理機調度與死鎖_第3頁
CH3 處理機調度與死鎖_第4頁
CH3 處理機調度與死鎖_第5頁
已閱讀5頁,還剩153頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第三章處理機調度與死鎖

§3.1處理機調度的層次

§3.2調度隊列模型和調度準則

§

§3.4實時調度

§3.5產生死鎖的原因和義要條件

§3.6預防死鎖的方法

§3.7死鎖的檢測與解除

3.1處理機調度的層次

§3.1.1高級調度

§3.1.2低級調度

§3.1.3中級調度

M

,亳

壯M

才44

L9壯9

L.

?-

Le?

CO§如0§0

1.作業和作業步

§(1)作業(Job)。作業是一個比程序更為廣泛的概念,它不僅

包含了通常的程序和數據,而且還應配有一份作業說明書,

系統根據該說明書來對程序的運行進行控制。在批處理系統

中,是以作業為基本單位從外存調入內存的。

§(2)作業步(JobStep)。通常,在作業運行期間,每個作業都

必須經過若干個相對獨立,又相互關聯的順序加工步驟才能

得到結果,我們把其中的每一個加工步驟稱為一個作業步,

各作業步之間存在著相互聯系,往往是把上一個作業步的輸

出作為下一個作業步的輸入。例如,一個典型的作業可分成

三個作業步:

★①“編譯”作業步,通過執行編譯程序對源程序進行編譯,產生若

干個目標程序段;

★②“連結裝配”作業步,將“編譯”作業步所產生的若干個目標程

序段裝配成可執行的目標程序;

★③“運行”作業步,將可執行的目標程序讀入內存并控制其運行。

§(3)作業流。若干個作業進入系統后,被依

次存放在外存上,這便形成了輸入的作業流;

在操作系統的控制下,逐個作業進行處理,

于是便形成了處理作業流。

2.作業控制塊JCBUobControl

Block)

§為了管理和調度作業,在多道批處理系統中為每個

作業設置了一個作業控制塊,如同進程控制塊是進

程在系統中存在的標志一樣,它是作業在系統中存

在的標志,其中保存了系統對作業進行管理和調度

所需的全部信息。

§在JCB中所包含的內容因系統而異,通常應包含的

內容有:

★作業標識、用戶名稱、用戶帳戶、

★作業類型(CPU繁忙型、I/O繁忙型、批量型、終端型)、

★作業狀態、調度信息(優先級、作業已運行時間)、

★資源需求(預計運行時間、要求內存大小、要求I/O設備的

類型和數量等)、

★進入系統時間、開始處理時間、作業完成時間、作業退

出時間、資源使用情況等。

后備隊列

§每當作業進入系統時,系統便為每個作業建

立一個JCB,根據作業類型將它插入相應的

后備隊列中。

§作業調度程序依據一定的調度算法來調度它

們,被調度到的作業將會裝入內存。

§在作業運行期間,系統就按照JCB中的信息

對作業進行控制。當一個作業執行結束進入

完成狀態日寸,系統負責回收分配給它的資源,

撤消它的作業控制塊。

3.作業調度

§作業調度的主要功能是根據作業控制塊中的

信息,審查系統能否滿足用戶作業的資源需

求,以及按照一定的算法,從外存的后備隊

列中選取某些作業調入內存,笄為它們創建

號進程、分配必要的資源。然后再將新創建的

”進程插入就緒隊列,準備執行。

1§因此,有時也把作業調度稱為接納調度

(AdmissionScheduling)o

§對用戶而言,總希望自己作業的周轉時間盡

可能的少,最好周轉時間就等于作業的執行

時間。

§然而對系統來說,則希望作業的平均周轉時

間盡可能少,有利于提高CPU的利用率和系

統的吞吐量。為此,每個系統在選擇作業調

度算法時,既應考慮用戶的要求,又能確保

系統具有較高的效率。在每次執行作業調度

時,都須做出以下兩個決定:

★1)決定接納多少個作業

★2)決定接納哪些作業

1)決定接納多少個作業

§作業調度每次要接納多少個作業進入內存,

取決于多道程序度(Degreeof

Multiprogramming),即允許多少個作業同時

在內存中運行。

§多道程序度的確定應根據系統的規模和運行

速度等情況做適當的折衷

★當內存中同時運行的作業數目太多時,可能會影

響到系統的服務質量,比如,使周轉時間太長。

但如果在內存中同時運行作業的數量太少時,又

會導致系統的資源利用率和系統吞吐量太俅。

2)決定接納哪些作業

§應將哪些作業從外存調入內存,這將取決于

所采用的調度算法。

★最箱單的是先來先服務調度算法,這是指將最早

進入外存的作業最先調入內存;

★較常用的一種算法是短作業優先調度算法,是將

外存上最短的作業最先調入內存;

★另一種較常用的是基于作業優先級的調度算法,

該算法是將夕卜存上優先級最高的作業優先調入內

存;

★比較好的一種算法是“響應比高者優先”的調度

算法。

分時系統和實時系統的作業調度

問題

§在批處理系統中,作業進入系統后,總是先

駐留在外存的后備隊列上,因此需要有作業

調度的過程,以便將它們分批地裝入內存。

§然而在分時系統中,為了做到及時響應,用

戶通過鍵盤輸入的命令或數據等都是被直接

送入內存的,因而無需再配置上述的作業調

度機制,但也需要有某些限制性措施來限制

進入系統的用戶數。即,如果系統尚未飽和,

將接納所有授權用戶,否則,將拒絕接納。

類似地,在實時系統中通常也不需要作業調

度。

3.1.2低級調度

§通常也把低級調度(LowLevelScheduling)稱

為進程調度或短程調度(ShortTerm

Scheduling),它所調度的對象是進程(或內核

F1級多線道程批)處。理進、程分調時度和是實最時基三本種的類一型種的調O度S,中在,

“都先須配置這級調度。

§1.俅級調度的功能

1§2.進程調度中的三個基本機制

§3.進程調度方式

鐘S

一詠筑用就夕*串監

N賓曲口

4陋就京耐

M

4

K即十《。、

H

@

網府期米陋(」賓也監

濟嘲M

綱杼刑&部用罪

強陋侏l

l

)

肥聰<第』舟夕串犯

修叱百B。

懈斜咪—《E園京甘叱

料圖利d

4

塔s基

耳他6屆賓賓雅

M

十舟皿Q、

@

也艇那)陋部部嬸

(眠網管

度型.

M

里彝M期京黑

M

陋陋D

fr

9賓京就杷由米年

利f

*強吸

甘小。W朱

*圓即吆曲標

W

K

fr

4

總收M夕

賓始趣K

M

婀冠N部寅

fr

W鐮耶

-

D

。部K同吆溫出本

4

K檢小

f

W窿心、

W

幫M甘。。密靠

歡h也翼陋陋

口*急的

w甘就鼾中

幫N串甘期刑

木*十

君茶fr

陋船小¥或陋王

八矍京圖&仲

M

w蛆心叱民

綱fr米期

(。

網木甘制.陋甘

W

4共曲時由

型CQ

豳o郡

內賓般a期耳

d

黑那叫必迪@

M

K

臉)

部侏保*

就&翼

蝎心喇本烈利n

9

.

或隔M需,那舟鐮

也G靠虎就

咪M

M

心fr

4

M

必W

必出a部

豳哈鼾銖¥陋

。也卑杷

一相彼壯眠蓋隨裁雜雕杷斜

八,

(

(

(部敏

E

W騷米雕刑出世杼

a

L

陋)

)

00

)

K

四出兼長*十

§

§

.

a書

$燼

4

E鼎賓

%曲王

索的%

-曲世

4酗

罪曲卜壯卜部

暫核

G夕

賓展k乜乜

米騷k

啾陋歸曲前

*

K包

/

K

林M

濟急管<

捌斜筠

G眠監

耳W璃陋

-b

B

$

腐G陋耐

—$吸

/恭

腕歸^、

W卻也

試抬a

$

3鈴期

皿*

K

出陋卜<串

M

*福杷賓解

川巨期乜照k

M濟。那

船n

H

標枚@杼友做

強d

甘前熔丑嘲—友

雜。

M陋

C

a

米U

&島友缺曲

同期日R

—@印缺陋

恢弋。利k

(

fr

*

螺欣&斜

他。H利

妙4喟密。。

室瞄陋4圜壯雜獻

M

b賓〔

網健趣嘴陋也年fr

強展內嗜船

w

眠斜整溫輔期/就

陋a賓

$心

)

。燃陋W舟超他醫

部K

時雕雕現

M

妙溫M網跑

k

4展夕

京*心《

用k熔

#眠陋得

H耳

a鄲

S

a也

a

后網期H陋

(

斜(

M

/

(曲仲

b

L將區、用筠友喔

L

)

k

)

w

N

*在

eo

7

)十

§

§應當指出,上下文切換將花去不少的處理機

時間,即使是現代計算機,每一次上下文切

換大約需要花費幾毫秒的時間,該時間大約

可執行上千條指令。

§為此,現在已有通過硬件(采用兩組或多組寄

存器)的方法來減少上下文切換的時間。

★一組寄存器供處理機在系統態時使用,

★另一組寄存器供應用程序使用。

§在這種條件下的上下文切換只需改變指針,

使其指向當前寄存器組即可。

3.進程調度方式

§1)非搶占方式(NonpreemptiveMode)

§2)搶占方式(PreemptiveMode)

1)非搶占方式[NomireeminNeMode

§在采用這種調度方式時,一旦把處理機分配給某進

程后,不管它要運行多長時間,都一直讓它運行下

去,決不會因為時鐘中斷等原因而搶占正在運行進

程的處理機,也不允許其它進程搶占已經分配給它

的處理機。直至該進程完成,自愿釋放處理機,或

發生某事件而被阻塞時,才再把處理機分配給其他

進程。

§在采用非搶占調度方式時,可能引起進程調度的因

素可歸結為如下幾個:

★(1)正在執行的進程執行完畢,或因發生某事件而不能再

繼續執行;

★(2)執行中的進程因提出I/O請求而暫停執行;

★(3)在進程通信或同步過程中執行了某種原語操作,如P

操作(wa讓操作)、Block原語、Wakeup原語等。

§非搶占方式的優點

★實現簡單,系統開銷小,適用于大多數的批處理

系統環境。

§非搶占方式的缺點

★難以滿足緊急任務的要求-----立即執行,因而可

能造成難以預料的后果。

§顯然,在要求比較嚴格的實時系統中,不宜

采用這種調度方式。

2)搶占方式[PreemmiueMode)

§這種調度方式允許調度程序根據某種原則去

暫停某個正在執行的進程,將已分配給該進

程的處理機重新分配給另一進程。

§搶占方式的優點是:

★可以防止一個長進程長時間占用處理機,能為大

多數進程提供更公平的服務,特別是能滿足對響

應時間有著較嚴格要求的實時任務的需求。

§搶占方式的缺點:

★搶占方式比非搶占方式調度所需付出的開銷較大。

一舊K界叵

。(我

H

*

磔?濟賓陋解

H急

置陋S代

)

R

M

X

一部4

卻G

X

N

4斜

M羚

卜監叱)壯

1

(袒

e父

陋O

口4

界4皿

e

羽M

下雜(候期豳

S

N

陋>筑強

W

(

艇)

標城現袒斜陋

4共壯

騏候

)

豳限斜d

壯.b

歸共現卯y伴附燼

M品口

入)

由案陋現中世卬年曲

雜4隙

用綱S的壯噌曲

豳軻金啊

,&

H

8

印甘前曲期W

帆S大限

k

國乜前陋年中b歸曲

削幗叵

*

映前年斜那包前(陋案裁

—J意

-

4中前年啾

M期

我0斜由

麥L

f筆

已艇案圖K

J

曲)

R陋

—成*嶗陋

需板監用舟4

峭期,

K械監米艇界《壯斜燼

如盟枝

埔蠅米也監S賓期仲曲

羽(陋乜。

(

S

成。&米陋部。曲燼

且。斜?烈且恒

濟監甘府S利夕。畋《曲

嶗)加賓兇

米陋a枚七部

)

枚監4彝大

部4

4濟

S

利賓R壯叵氏嘲

拒壯W

必M

4屋

由歸部雜歸M親

急W

f

s期

強夕*丫甘

艇案烈歸案氏i用

(

R

(

(

用曲(

格K舶案幫案陋大畋板

N

L

)

00

k

)

)

農*次十

3.13中級調度

§中級調度(IntermediateLevelScheduling)又稱中程

調度

(Medium-TermScheduling)o

§引入中級調度的主要目的是為了提高內存利用率和

系統吞吐量。為此,應使那些暫時不能運行的進程

不再占用寶貴的內存資源,而將它們調至外存上去

等待,把此時的進程狀態稱為就緒駐外存狀態或掛

起狀態。當這些進程重又具備運行條件且內存又稍

有空閑日寸,由中級調度來決定把外存上的那些又具

備運行條件的就緒進程重新調入內存,并修改其狀

態為就緒狀態,掛在就緒隊列上等待進程調度。

§中級調度實際上就是存儲器管理中的對換功能,我

們將在第四章中做詳細闡述。

§在上述三種調度中,進程調度的運行頻率最高,在

分時系統中通常是1。—100ms便進行一次進程調度,

因此把它稱為短程調度。為避免進程調度占用太多

的CPU時間,進程調度算法不宜太復雜。

§作業調度往往是發生在一個(批)作業運行完畢,退

出系統,而需要重新調>一個(批)作業進入內存時,

故作業調度的周期較長,大約幾分鐘一次,因此把

它稱為長程調度。由于其運行頻率較低,故允許作

業調度算法花費較多的時間o

§中級調度的運行頻率基本上介于上述兩種調度之間,

因此把它稱為中程調度。

3.2調度隊列模型和調度準則

§3.2.1調度隊列模型

§322選擇調度方式和調度算法的若干準則

321調度隊列模型

§1.僅有進程調度的調度隊列模型

§2.具有高級和俅級調度的調度隊列模型

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

1.僅有進程調度的調度隊列模型

§在分時系統中,通常僅設置了進程調度,用

戶鍵入的命令和數據都直接送入內存。對于

命令,是由OS為之建立一個進程。

§系統可以把處于就緒狀態的進程組織成棧、

樹或一個無序鏈表,至于到底采用其中哪種

形式,則與OS類型和所采用的調度算法有關。

§例如,在分時系統中,常把就緒進程組織成

FIFO隊列形式。每當OS創建一個新進程時,

便將它掛在就緒隊列的末尾,然后按時間片

輪轉方式運行。

§每個進程在執行時都可能出現以下三種情況:

★(1)任務在給定的時間片內已經完成,該進程便在釋放處

理機后進入完成狀態;

★(2)任務在本次分得的時間片內尚未完成,OS便將該任

務再放入就緒隊列的末尾;

★(3)在執行期間,進程因為某事件而被阻塞后,被OS放

入阻塞隊列。

時間片完

圖3?1僅具有進程調度的調度隊列模型

11.具有高級和低級調度的調度隊

列模型

§在批處理系統中,不僅需要進程調度,而且還需有作業調

度,由后者按一定的作業調度算法,從外存的后備隊列中

選擇一批作業調入內存,并為它們建立進程,送入就緒隊

列,然后才由進程調度按照一定的進程調度算法選擇一個

進程,把處理機分配給該進程。

作業時間片完

圖3-2具有高、低兩級調度的調度隊列模型

該模型與上一模型的主要區別

§(1)就緒隊列的形式。在批處理系統中,最常用的是最高優

先權優先調度算法,相應地,最常用的就緒隊列形式是優先

權隊列。進程在進入優先級隊列時,根據其優先權的高低,

被插入具有相應優先權的位置上,這樣,調度程序總是把處

理機分配給就緒隊列中的隊首進程。在最高優先權優先的調

度算法中,也可采用無序鏈表方式,即每次把新到的進程掛

在鏈尾,而調度程序每次調度時,是依次比較該鏈中各進程

的優先權,從中找出優先權最高的進程,將之從鏈中摘下,

并把處理機分配給它。顯然,無序鏈表方式與優先權隊列相

比,這種方式的調度效率較低。

§(2)設置多個阻塞隊列。對于小型系統,可以只設置一個阻

塞隊列;但當系統較大時,若仍只有一個阻塞隊列,其長度

必然會很長,隊列中的進程數可以達到數百個,這將嚴重影

響對阻塞隊列操作的效率。故在大、中型系統中通常都設置

了若干個阻塞隊列,每個隊列對應于某一種進程阻塞事件。

3.同時具有三級調度的調度隊列

模翅

§當在OS中引入中級調度后,人們可把進程的就緒

狀態分為:

★內存就緒(表示進程在內存中就緒)

★外存就緒(進程在外存中就緒)。

§類似地,也可把阻塞狀態進一步分成

★內存阻塞

★外存阻塞

§在調出操作的作用下,可使進程狀態由內存就緒轉

為外存就緒,由內存阻塞轉為外存阻塞;在中級調

度的作用下,又可使外存就緒轉為內存就緒。

作業調度時間片完

圖3-3具有三級調度時的調度隊列模型

3.2.2選擇調度方式和調度算法的

若干準則

§1.面向用戶的準則

§2.面向系統的準則

,。

。雜。

期國

叵Jm側

r電

*於

-fn

憚H耳乜小

眄博s

(

(

(

(

L

e寸

)

)

co

)

)

§

§§

§

口】周轉時間短

§通常把周轉時間的長短作為評價批處理系統的性能、

選擇作業調度方式與算法的重要準則之一。

§所渭周轉時間,是指從作業被提交給系統開始,到

作業完成為止的這段時間間隔(稱為作業周轉時間)o

它包括四部分時間:

★作業在外存后備隊列上等待(作業)調度的時間,

★進程在就緒隊列上等待進程調度的時間,

★進程在CPU上執行的時間,

★進程等待I/O操作完成的時間o

§其中的后三項在一個作業的整個處理過程中可能會

發生多次。

平均周轉時間

§對每個用戶而言,都希望自己作業的周轉時

間最短。但作為計算機系統的管理者,則總

是希望能使平均周轉時間最短,這不僅會有

效地提高系統資源的利用率,而且還可使大

多數用戶都感到滿意。

§可把平均周轉時間描述為:

1n

ni=\

帶權周轉時間

§作業的周轉時間T與系統為它提供服務的時

間Ts之比,即W=T/Ts,稱為帶權周轉時間,

而平均帶權周轉時間則可表示為:

1

W=—

n

型帆G常甘

叵。

曲用—令乜《

顯米趺叵曲

乜.意中

侏R味

談一空船

K

M制

耳四阿賓

也股黎悸

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論