第三章處理程序的說(shuō)明和控制Process Description and Control_第1頁(yè)
第三章處理程序的說(shuō)明和控制Process Description and Control_第2頁(yè)
第三章處理程序的說(shuō)明和控制Process Description and Control_第3頁(yè)
第三章處理程序的說(shuō)明和控制Process Description and Control_第4頁(yè)
第三章處理程序的說(shuō)明和控制Process Description and Control_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章處理程序的說(shuō)明及控制

Process

Description

and

Control1z

所有多重程式(multi-programmed)作業(yè)系統(tǒng)都建立在

process的概念z

大部分作業(yè)系統(tǒng)需滿(mǎn)足的需求y交錯(cuò)多個(gè)process的執(zhí)行,在理想反應(yīng)時(shí)間下達(dá)到最大的處理器使用率。y

遵從特定的政策(例如,高優(yōu)先權(quán))來(lái)配置資源給process,且避免死結(jié)的發(fā)生。y

支援process間的相互通訊(inter-process

communication)、使用者

process的建立。z

從了解process的表示與控制,開(kāi)始學(xué)習(xí)作業(yè)系統(tǒng)!3.1處理程序的狀態(tài)2z

從處理器的觀點(diǎn)看process交錯(cuò)執(zhí)行y

處理器藉由改變程式計(jì)數(shù)器(Program

Counter,PC)的數(shù)值,依序執(zhí)行指令。y

追蹤process的軌跡(trace):列出每個(gè)process執(zhí)行指令的順序。處理程序A,B,C的軌跡(c)5000800012000500180011200150028002120025003800312003500412004500512005500612006500712007500812008500912009501012010Figure

3.1

Snapshot

of501112011ExampleExecution(a)(b)3(Figure

3.3)

atInstruction

Cycle

13所有處理程序結(jié)合的軌跡500050015002500350045005時(shí)間到10010110210310410580008001z

8002z8003zI/O請(qǐng)求z100z101z102z103z104z105z12000z12001z12002z12003z12004z12005z

時(shí)間到z100z101z102z103z104z105z5006z5007z5008z5009z5010z5011z時(shí)間到z100Figure

3.3

Combined

Tracez

o10f1

Processes

of

Figu4re

3z102z103z104z105z12006z12007z12008z12009z12010z12011z時(shí)間到雙狀態(tài)(two-state)處理程序模型z

Process的兩種狀態(tài)y

執(zhí)行(Running)y

未執(zhí)行(Not

Running)z中斷的process被移等待佇列中。z分派程式由佇列中選擇一個(gè)process執(zhí)行:。至。5建立處理程序的原因6z

新的批次工作:讀入下一個(gè)工作控制命令(Job

ControlCommand)。z

互動(dòng)式登入:使用者在終端機(jī)登入到系統(tǒng)。z

被作業(yè)系統(tǒng)建立來(lái)提供服務(wù):產(chǎn)生新process以進(jìn)行特定功能,避免使用者等待。z

由現(xiàn)有的process產(chǎn)生:為了模組化或平行處理,使用者程式可建立其他process。y

Process產(chǎn)生另一Process時(shí),彼此為親子關(guān)係(Parent

and

Child)。處理程序終止的原因7z

正常完成(Normal

completion)y

批次工作下達(dá)停止(Halt)指令或系統(tǒng)呼叫。y

使用者登出。y

Process發(fā)出終止執(zhí)行的請(qǐng)求。z

執(zhí)行時(shí)發(fā)生錯(cuò)誤:y

超過(guò)時(shí)間限制(Time

limit

exceeded)、記憶體不足(Memoryunavailable)、違反記憶體邊界(Memory

bounds

violation)y

保護(hù)錯(cuò)誤(Protection

error):write

to

read-only

filey

算術(shù)錯(cuò)誤(Arithmetic

error):除以0,或超出最大值。y

時(shí)間超過(guò)(Time

overrun):process

waited

longer

than

a

specifiedmaximum

for

an

eventy

管理者或作業(yè)系統(tǒng)介入(如發(fā)生deadlock)、輸出入失敗(I/O

failure)不合法指令(Invalid

instruction)、特權(quán)指令(Privileged

instructi資料誤用、parent

process要求、parent

process終止。五狀態(tài)(five-state)處理程序模型8z

雙狀態(tài)模型不完備之處y

未執(zhí)行狀態(tài)的process有兩種情形:(1)可以執(zhí)行;(2)等待I/O動(dòng)作的完成而被懸置(blocked)。y

分派程式必須掃描整個(gè)佇列,找出未被懸置且等待最久的process。z

擴(kuò)充雙狀態(tài)模型成為五種狀態(tài)y

執(zhí)行中(Running)y

未執(zhí)行狀態(tài)再區(qū)分為:備妥(Ready);懸置(Blocked)y

另為方便管理process,新增二種狀態(tài):y

新建(New):剛被系統(tǒng)建立,尚未允許進(jìn)入執(zhí)行區(qū)。(尚未載入主記憶體,僅建立表格)y

離開(kāi)(Exit):因停止或取消,被系統(tǒng)由執(zhí)行區(qū)離開(kāi)。(釋放佔(zhàn)用的主記憶體,但保留相關(guān)表格)五狀態(tài)處理程序模型(續(xù))9Figure

3.6

ProcessStates

for

Trace

of

Figure

3.310z圖3.7(a)有兩個(gè)佇列:備妥佇列與懸置佇列z圖3.7(b)對(duì)每一事件分別有一佇列Figure

3.7

QueuingModel

of

Figure3.511置換的需要The

need

for

swapping12z

在未使用虛擬記憶體的系統(tǒng),每個(gè)process必須完全地載入記憶體中才能執(zhí)行。z

由於處理器比I/O動(dòng)作快太多,即使在多工環(huán)境下,處理器大部分時(shí)間仍處?kù)堕f置狀態(tài)。z

解決方法:容納更多的processy

擴(kuò)充主記憶體:如此會(huì)增加成本。y置換(swapping):將process的部分或全部由主記憶體移至磁碟上,本身也是I/O動(dòng)作。z

使用置換,需增加新的狀態(tài):暫停(suspend)y

當(dāng)所有主記憶體中的process都處?kù)稇抑脿顟B(tài)時(shí),系統(tǒng)可將某個(gè)

process暫停,?置換至磁碟,其所佔(zhàn)據(jù)的主記憶體空間就可釋放出來(lái)給其他process使用。z

置換之後,選擇載入process的方法y

容許新process的產(chǎn)生。問(wèn)題:將增加系統(tǒng)的負(fù)擔(dān)。y

載入一處?kù)稌和顟B(tài)的process。問(wèn)題:所有暫停process都是被懸置的process,即使載入也仍無(wú)法執(zhí)行。13單一暫停狀態(tài)雙暫停狀態(tài)14z

有兩個(gè)獨(dú)立的概念:y

是否等待事件(懸置)、是否被置換

(暫停)z

2

*

2組合:共四種狀態(tài):y

(1)備妥;(2)懸置;(3)懸置,暫停;(4)備妥,暫停。暫停的其他使用15z

暫停process的概念y

Process無(wú)法立即被執(zhí)行。y

Process可能在等待某個(gè)事件。y

Process可被其他process或作業(yè)系統(tǒng)置於暫停狀態(tài)。y

Process不能離開(kāi)這個(gè)狀態(tài),直到讓它陷入暫停狀態(tài)的人解除為止。z

process暫停的原因y

置換:作業(yè)系統(tǒng)必須釋出主記憶體空間,以容許載入其他process。y

其他作業(yè)系統(tǒng)理由:作業(yè)系統(tǒng)可能會(huì)暫停背景、工具或產(chǎn)生問(wèn)題的process。y

互動(dòng)使用者要求:使用者希望暫停某一process。y

時(shí)間:如週期性執(zhí)行的process。y

parent

process要求。3.2處理程序描述Process

Descriptionz

作業(yè)系統(tǒng)控制結(jié)構(gòu)y作業(yè)系統(tǒng)要管理process與資源,必須擁有各process與資源目前狀態(tài)的資訊。y最簡(jiǎn)單的方法:作業(yè)系統(tǒng)建立?維護(hù)所管理實(shí)體的資訊表格,包括:記憶體、輸出入(I/O)、檔案、Process。Figure

3.9Processes

and

Resources

(resourceallocation

at

one

snapshot

in

time)16Figure

3.10

General

Structureof

Operating

System

ControlTables17Process的控制結(jié)構(gòu)18z

Process的位置y

影像(image):即Process的構(gòu)成,包含:程式、資料、堆疊與屬性。

y

Process的image的位置:y

(a)連續(xù)的記憶體區(qū)塊;或y

(b)一系列不一定連續(xù)的區(qū)塊。區(qū)塊可為不同長(zhǎng)度(區(qū)段,Segment),或使用固定長(zhǎng)度(頁(yè),page),或二者結(jié)合。z

Process的屬性y

Process控制區(qū)塊(Process

Control

Block):所有屬性的集合。Process控制區(qū)塊19zProcess識(shí)別資訊(identification

information):該proce別碼、parent

process的識(shí)別碼、使用者識(shí)別碼z

Process狀態(tài)資訊(state

information):y

使用者可見(jiàn)暫存器;y

控制與狀態(tài)暫存器:Program

Counter,Program

Status

Word,…y

堆疊指標(biāo)。z

Process控制資訊(control

information):y

優(yōu)先權(quán)、排班相關(guān)資訊、y

事件、結(jié)構(gòu)資訊(process間的資料結(jié)構(gòu)鏈結(jié))、y

process間通訊(inter-process

communication)、process的權(quán)限、

y

記憶體管理、資源所有權(quán)與使用率。處理程序的屬性-Pentium

EFLAGS暫存器z

控制位元:y

ID識(shí)別碼:是否支援CPUID指令,該指令提供製造商、型號(hào)資訊。y

RF:繼續(xù)旗標(biāo)(Resume

flag)。y

IOPL:輸出入特權(quán)層級(jí)(I/O

privilege

level)y

IF:中斷致能旗標(biāo)(Interrupt

enable

flag)。y

TF:陷阱旗標(biāo)(Trap

flag),使所有指令的執(zhí)行產(chǎn)生中斷,以用來(lái)偵錯(cuò)。z

運(yùn)作模式位元y

VM:虛擬8086模式(Virtual

8086

mode)。y

VIF(Virtual

interrupt

flag):用於虛擬8086模式,取代中斷致能旗標(biāo)(IF)z

狀況代碼y

CF:進(jìn)位旗標(biāo)(Carry

flag)。20Figure

3.12

User

Processes

in

Virtual

Memory21Figure

3.13

Process

List

Structures223.3處理程序控制23z

大部分處理器支援至少兩種執(zhí)行模式y(tǒng)

較低特權(quán)的模式:稱(chēng)使用者模式(user

mode)。y

較高特權(quán)的模式:稱(chēng)系統(tǒng)模式(system

mode)、控制模式(controlmode)、或核心模式(kernel

mode)。y

理由:作業(yè)系統(tǒng)本身及其表格有保護(hù)的必要。z

執(zhí)行模式的區(qū)別及改變y

程式狀態(tài)字組(Program

Status

Word,PSW)有一位元表示執(zhí)行模式。y

VAX的改變模式指令(CHM):使用者呼叫系統(tǒng)服務(wù),或發(fā)生中斷控制轉(zhuǎn)移至系統(tǒng)常式時(shí),常式就執(zhí)行CHM指令﹔返回控制權(quán)給使用者process前,再執(zhí)行一次CHM進(jìn)入較低特權(quán)模式。z

Process的建立y

配置一process識(shí)別碼,在process表格中加入一新項(xiàng)目。y

分配空間,包含process影像(image)的所有元素。y

Process控制區(qū)塊(Process

Control

Block)的初始化。y

設(shè)定Process的鏈結(jié)、各種Process佇列、其他資料結(jié)構(gòu)。處理程序切換(process

switch)24z

何時(shí)process切換?作業(yè)系統(tǒng)取得控制權(quán)的事件:y

中斷(Interrupt):由外部發(fā)出,例如:I/O動(dòng)作完成。時(shí)鐘中斷

(Timer

Interrupt),輸出入中斷(I/O

Interrupt),記憶體錯(cuò)誤。y

陷阱(Trap):與目前執(zhí)行的指令相關(guān),例如:非法存取檔案。Anerror

resulted

from

the

last

instruction.

It

may

cause

the

processmoved

to

the

Exit

state.y

監(jiān)督者呼叫(Supervisor

Call):程式明確要求,例如:開(kāi)啟檔案。

explicit

request

by

the

program(ex:file

open).The

process

willprobably

be

blocked.z

中斷週期的模式切換(Mode

Switch)y

儲(chǔ)存目前執(zhí)行中程式的序文(context):PSW,PC,其他暫存器、堆疊。y

將程式計(jì)數(shù)器(PC)設(shè)至中斷處理器的位址。y

由使用者模式切換至核心模式,讓中斷處理程式可執(zhí)行特權(quán)指令。處理程序切換(Process

Switch)(續(xù))25z

模式切換(mode

switching)vs.處理程序切換(processswitching)y

(也有稱(chēng)context

switch,但容易與thread切換混淆)

y

模式切換不會(huì)改變process從執(zhí)行狀態(tài)至另一狀態(tài)。y在此情況下,序文(context)的儲(chǔ)存及之後的回存,額外的負(fù)擔(dān)較少。y

但執(zhí)行中的Process被移至其他狀態(tài),則必須做完整的process切換。z

Process切換的步驟:y

儲(chǔ)存處理器的序文,包括:程式計(jì)數(shù)器與其他暫存器。y

更新Process控制區(qū)塊:改變Process執(zhí)行狀態(tài)至另一狀態(tài)。將

Process移至適當(dāng)?shù)膩辛小選擇另一Process來(lái)執(zhí)行(課本第4部分討論)。更新選擇的Process的控制區(qū)塊。y

更新記憶體管理資料結(jié)構(gòu)。y

回存處理器的序文到該P(yáng)rocess被切換之前。作業(yè)系統(tǒng)的執(zhí)行方式z

作業(yè)系統(tǒng)的特殊角色y

作業(yè)系統(tǒng)是電腦軟體,也就是處理器執(zhí)行的程式。y

作業(yè)系統(tǒng)時(shí)常放棄控制,且依賴(lài)處理器允許它取回控制權(quán)。y

作業(yè)系統(tǒng)是個(gè)Process嗎?它如何控制?z

非Process核心(Non-process

Kernel):y

常在舊作業(yè)系統(tǒng)見(jiàn)到的方法。y作業(yè)系統(tǒng)在所有Process外執(zhí)行,是分開(kāi)執(zhí)行的實(shí)體,擁有特權(quán)模式。y

所謂Process即為User

Process。Figure

3.14

(a)Separate

kernel26z

將整個(gè)作業(yè)系統(tǒng)視為User

Process的內(nèi)容z

作業(yè)系統(tǒng)是常式的集合,讓使用者呼叫來(lái)執(zhí)行各種功能z

在User

Process的環(huán)境中執(zhí)行。z當(dāng)中斷、陷阱或管理者呼叫發(fā)生,處理器就進(jìn)入核心模式,?將控制權(quán)交給作業(yè)系統(tǒng)。z?未做處理程序切換,只進(jìn)行了模式切換。作業(yè)系統(tǒng)碼以共享的方式,被User

Process所執(zhí)行。與User

Process一起執(zhí)行Figure

3.14

(b)OS

functionsexecute

within

userprocesses27與User

Process一起執(zhí)行(續(xù))28z

在核心模式時(shí),使用分開(kāi)的核心堆疊(kernel

stack)管理呼叫/返回。z

作業(yè)系統(tǒng)在共享的位址區(qū)域,可被所有User

Process共享Figure

3.15

Process

Image:

OperatingSystem

Executes

Within

User

Space處理程序?yàn)榛A(chǔ)的作業(yè)系統(tǒng)

Process-based

Operating

Systemz

將作業(yè)系統(tǒng)視為許多Process的集合y

主要的核心函數(shù)組織成分離的Processz

優(yōu)點(diǎn):y

模組化的設(shè)計(jì)。y

採(cǎi)Process設(shè)計(jì),各函數(shù)可以設(shè)定不同的優(yōu)先權(quán)執(zhí)行,?與其他

Process交錯(cuò)執(zhí)行。y對(duì)多處理器或分散式系統(tǒng)而言,可將作業(yè)系統(tǒng)服務(wù)移至其他處理器上執(zhí)行,來(lái)提昇效率。Figure

3.14

(c)

OS

functions

execute

as

separate

processes293.4

Unix

SVR4

Process管理30z

大部分Unix作業(yè)系統(tǒng)的功能,都在User

Process的環(huán)境下執(zhí)行。(圖3.14(b)的模式)z

使用兩種類(lèi)型的Processy

System

Process:核心模式下執(zhí)行,例如:配置記憶體、置換

Process。y

User

Process:

(1)

run

in

user

mode

for

user

programs;

(2)

run

in

kemodes

for

system

calls,

traps,

and

interrupts.z

Process狀態(tài):共9種狀態(tài),類(lèi)似之前的7狀態(tài)轉(zhuǎn)移圖。y

Created=New;Zombie(僵屍)=Exit;…。y

執(zhí)行中(Running)分為:[User

Running],[Kernel

Running],表示在使用者模式或核心模式內(nèi)執(zhí)行。y

區(qū)分備妥[Ready

to

Run

in

Memory]及被先佔(zhàn)[Preempted]:二者本質(zhì)上相同,只是區(qū)別進(jìn)入此狀態(tài)的途徑,二者也放在同一佇列上。y

先佔(zhàn)動(dòng)作(Preemption)只發(fā)生在Process由kernel轉(zhuǎn)移至user

mode時(shí)。使得Unix不適於即時(shí)處理(Real-time

processing)。Figure

3.16

UNIX

Process

State

Transition

Diagram31Unix

System

Processes32z

Process

0是在系統(tǒng)啟動(dòng)時(shí)(boot

time)建立的特殊process,y

預(yù)先定義成一個(gè)啟動(dòng)時(shí)載入的資料結(jié)構(gòu)。y

稱(chēng)為置換者處理程序(“swapper

process”)。z

Process

0

fork

process

1

(the

init

process)z

所有系統(tǒng)中的process都是Process

1的child

process。y

當(dāng)使用者登錄系統(tǒng),Process

1建立一User

Process給該使用者。Unix處理程序影像(Process

Image)33z

使用者階層序文(User-level

context)y

Process本文(Text):程式的可執(zhí)行機(jī)器指令(code:read-only)y

Process資料(Data)y

使用者堆疊(User

Stack):calls/returns

in

user

modey共享記憶體(Shared

memory):用於行程間通訊(IPC)。只有一份實(shí)體,但藉由虛擬記憶體

溫馨提示

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

評(píng)論

0/150

提交評(píng)論