資源描述:
《第3章進(jìn)程管理》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、第3章處理器管理進(jìn)程概念進(jìn)程控制塊PCB進(jìn)程狀態(tài)及其轉(zhuǎn)換進(jìn)程控制3.1多道程序設(shè)計(jì)多道程序設(shè)計(jì)技術(shù)采用多道程序設(shè)計(jì)技術(shù)應(yīng)注意的問(wèn)題存儲(chǔ)保護(hù)程序浮動(dòng)資源的分配和調(diào)度采用多道程序設(shè)計(jì)技術(shù)的原因提高資源的利用率多道程序設(shè)計(jì)的優(yōu)點(diǎn)提高了處理器的利用率充分利用外圍設(shè)備資源發(fā)揮了處理器和外圍設(shè)備之間以及外圍設(shè)備之間的并行處理能力多道程序設(shè)計(jì)的問(wèn)題可能延長(zhǎng)程序的執(zhí)行時(shí)間并行工作道數(shù)與系統(tǒng)效率不成正比并行的道數(shù)要根據(jù)系統(tǒng)配置的資源和用戶對(duì)資源的要求來(lái)確定主存空間大小外圍設(shè)備數(shù)量多個(gè)程序同時(shí)要求使用同一個(gè)資源合理搭配PUSH(S,TOP,X)POP(S,TOP,X)BEGIN
2、BEGINTOP=TOP+1X=S(TOP)S(TOP)=XTOP=TOP-1ENDEND如果兩個(gè)程序段按如下順序執(zhí)行,結(jié)果如何?T1:PUSH:TOP=TOP+1T2:POP:X=S(TOP)TOP=TOP-1T3:PUSH:S(TOP)=X我們沒(méi)有得到預(yù)期的結(jié)果。結(jié)論:系統(tǒng)中運(yùn)行著的程序之間存在一些約束,破壞了程序的封閉性和可再現(xiàn)性。問(wèn)題:如何解決?進(jìn)程的概念為了描述程序執(zhí)行過(guò)程的“走走停停”,引入了進(jìn)程。一個(gè)程序在一個(gè)數(shù)據(jù)集上的一次執(zhí)行。進(jìn)程是動(dòng)態(tài)的。進(jìn)程和程序的聯(lián)系和區(qū)別:一個(gè)程序可以對(duì)應(yīng)多個(gè)進(jìn)程。程序是靜態(tài)的,進(jìn)程是動(dòng)態(tài)的??芍厝氤绦颍兇a):執(zhí)
3、行過(guò)程中不變的代碼。進(jìn)程的特性并發(fā)性:系統(tǒng)中同時(shí)存在著若干進(jìn)程。動(dòng)態(tài)性:進(jìn)程狀態(tài)不斷變化。獨(dú)立性:進(jìn)程是分配資源的獨(dú)立單位。交往性:與其它進(jìn)程交換信息。異步性:以不可預(yù)知的速度向前推進(jìn)。結(jié)構(gòu)性:一個(gè)進(jìn)程包括三個(gè)部分:程序,數(shù)據(jù),進(jìn)程控制塊。進(jìn)程控制塊(PCB)定義:描述進(jìn)程外部特性的數(shù)據(jù)結(jié)構(gòu)。內(nèi)容:標(biāo)識(shí)信息:進(jìn)程標(biāo)識(shí)符;特征;當(dāng)前狀態(tài)。說(shuō)明信息:擁有資源和等待資源。內(nèi)存地址、I/O設(shè)備、外存、數(shù)據(jù)區(qū)等。管理信息:進(jìn)程優(yōu)先數(shù);隊(duì)列指針?,F(xiàn)場(chǎng)信息:記錄進(jìn)程釋放處理機(jī)時(shí)的現(xiàn)場(chǎng)信息,PSW、通用寄存器等。作用:PCB是進(jìn)程存在的唯一標(biāo)志。進(jìn)程的動(dòng)態(tài)、并發(fā)特性通過(guò)PC
4、B表現(xiàn)出來(lái)。進(jìn)程狀態(tài)及其轉(zhuǎn)換運(yùn)行狀態(tài):占有處理機(jī)。就緒狀態(tài):進(jìn)程擁有了除CPU之外的所有資源。等待狀態(tài):進(jìn)程在等待某事件發(fā)生。如讀磁盤、讀文件等。一個(gè)進(jìn)程在整個(gè)生命周期中,由于所擁有的資源不同,狀態(tài)不斷變化。進(jìn)程狀態(tài)及其轉(zhuǎn)換進(jìn)程基本狀態(tài)就緒:擁有了除CPU之外的所有資源。運(yùn)行:進(jìn)程在CPU上運(yùn)行。等待:進(jìn)程等待某事件發(fā)生,如:讀磁盤,打印、讀文件等等。進(jìn)程狀態(tài)之間的轉(zhuǎn)換創(chuàng)建一個(gè)進(jìn)程時(shí),進(jìn)程處于就緒狀態(tài)。隨著擁有(或等待)的資源不同,進(jìn)程在不同的狀態(tài)下轉(zhuǎn)換。進(jìn)程的整個(gè)生命周期就是在不同的狀態(tài)轉(zhuǎn)換中。就緒運(yùn)行等待創(chuàng)建撤消進(jìn)程調(diào)度時(shí)間片到;更高優(yōu)先級(jí)進(jìn)程事件已發(fā)生
5、等待某事件注意1、進(jìn)程的三個(gè)基本狀態(tài)。2、什么事件可以導(dǎo)致進(jìn)程狀態(tài)之間的轉(zhuǎn)換。3、一個(gè)進(jìn)程的狀態(tài)轉(zhuǎn)換可能引起其它進(jìn)程的狀態(tài)轉(zhuǎn)換。例如:一個(gè)進(jìn)程從運(yùn)行?等待,就會(huì)有另一個(gè)進(jìn)程從就緒?運(yùn)行。4、哪些狀態(tài)的轉(zhuǎn)換是可能的,哪些是不可能的。如:等待?運(yùn)行(?)。5、一個(gè)完整的進(jìn)程由程序、數(shù)據(jù)、進(jìn)程控制快組成。進(jìn)程的任何狀態(tài)變化都在PCB之中反映出來(lái)。進(jìn)程隊(duì)列處在就緒狀態(tài)和等待狀態(tài)的進(jìn)程不止一個(gè)。(但在任一時(shí)刻,處在運(yùn)行狀態(tài)的進(jìn)程最多只有一個(gè))。引起進(jìn)程狀態(tài)變化的原因也很多。如何組織、管理這些進(jìn)程?PCB中有一個(gè)連接指針,用于組織PCB。就緒隊(duì)列和等待隊(duì)列。根據(jù)等待的事
6、件不同,可以組織多個(gè)等待隊(duì)列。進(jìn)程隊(duì)列的實(shí)現(xiàn)方式線性方式原理:為PCB預(yù)留一定的空間,即確定了系統(tǒng)中PCB的最大數(shù)目,把所有進(jìn)程的PCB都放在這個(gè)表中。優(yōu)點(diǎn):最簡(jiǎn)單,最容易實(shí)現(xiàn)。缺點(diǎn):若用戶很多,則無(wú)法創(chuàng)建新的進(jìn)程;查找一個(gè)進(jìn)程的效率很低。鏈接方式:(C語(yǔ)言中的鏈表概念)原理:按進(jìn)程狀態(tài),放在不同隊(duì)列中。隊(duì)列的組織:按等待原因;按優(yōu)先級(jí)??進(jìn)程隊(duì)列的實(shí)現(xiàn)方式索引方式:利用索引表記錄不同狀態(tài)的進(jìn)程。一種狀態(tài)就對(duì)應(yīng)一張索引表。索引表中存放PCB的地址。優(yōu)點(diǎn):訪問(wèn)速度快,直接訪問(wèn)。缺點(diǎn):索引表本身要占用存儲(chǔ)空間。就緒索引表問(wèn)題由誰(shuí)來(lái)創(chuàng)建進(jìn)程?誰(shuí)來(lái)實(shí)現(xiàn)進(jìn)程的轉(zhuǎn)換?誰(shuí)
7、負(fù)責(zé)將進(jìn)程從一個(gè)隊(duì)列轉(zhuǎn)移到另一個(gè)隊(duì)列?進(jìn)程控制1、進(jìn)程控制的內(nèi)容:創(chuàng)建進(jìn)程;撤消進(jìn)程;掛起進(jìn)程;阻塞進(jìn)程;喚醒進(jìn)程等等。2、原語(yǔ):為完成某些特定的功能而編制的一段系統(tǒng)程序。特點(diǎn):不可中斷。也稱做“原子操作”。3、用于進(jìn)程控制的原語(yǔ):創(chuàng)建原語(yǔ)撤消原語(yǔ)喚醒原語(yǔ)阻塞原語(yǔ)創(chuàng)建原語(yǔ)功能:創(chuàng)建一個(gè)進(jìn)程。流程:申請(qǐng)一個(gè)空PCB為新進(jìn)程分配資源加入就緒隊(duì)列有?Y報(bào)告出錯(cuò)信息撤消原語(yǔ)功能:回收進(jìn)程所占有所有資源。流程:找到要撤消的進(jìn)程收回進(jìn)程所占有資源將PCB加入空PCB隊(duì)列終止其所有子進(jìn)程阻塞原語(yǔ)進(jìn)程由運(yùn)行?等待的狀態(tài)轉(zhuǎn)換。流程:將進(jìn)程狀態(tài)改變?yōu)榈却龑⑦M(jìn)程PCB加入相應(yīng)的等
8、待隊(duì)列轉(zhuǎn)進(jìn)程調(diào)度保存現(xiàn)場(chǎng)信息在PCB中喚醒原語(yǔ)功能: