進(jìn)程管理2PCB課件_第1頁
進(jìn)程管理2PCB課件_第2頁
進(jìn)程管理2PCB課件_第3頁
進(jìn)程管理2PCB課件_第4頁
進(jìn)程管理2PCB課件_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、3.1 進(jìn)程的基本概念一、 進(jìn)程的引入二、 進(jìn)程的概念三、 進(jìn)程的特征四、 進(jìn)程的狀態(tài)及其轉(zhuǎn)換五、 進(jìn)程控制塊六、 進(jìn)程的創(chuàng)建和撤消三、進(jìn)程的特征1動(dòng)態(tài)性2. 并發(fā)性3. 獨(dú)立性 進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位。沒有建立進(jìn)程的程序,不能作為一個(gè)獨(dú)立的單位參加運(yùn)行。4. 異步性5. 結(jié)構(gòu)特性 從結(jié)構(gòu)上看,進(jìn)程由程序段、數(shù)據(jù)段及PCB三部分組成。四、進(jìn)程的狀態(tài)及其轉(zhuǎn)換 1、進(jìn)程的三種基本狀態(tài)(1)就緒狀態(tài)(Ready) 當(dāng)進(jìn)程已經(jīng)分配到除CPU以外的所有必要的資源后,只要能再獲得處理機(jī),就可以立即執(zhí)行(2)執(zhí)行狀態(tài)(Running)(運(yùn)行狀態(tài))

2、指進(jìn)程已獲得處理機(jī)而執(zhí)行的狀態(tài)。(3)阻塞狀態(tài)(Block)(等待狀態(tài))進(jìn)程因?yàn)榘l(fā)生某個(gè)事件而暫停執(zhí)行時(shí)的狀態(tài)(如:請(qǐng)求I/O、申請(qǐng)緩沖空間等)。有時(shí)也稱“等待”狀態(tài)或“睡眠”狀態(tài)。2、 進(jìn)程狀態(tài)轉(zhuǎn)換就緒執(zhí)行:調(diào)度執(zhí)行等待:等待某個(gè)事件發(fā)生而睡眠等待就緒:因等待的事件發(fā)生而喚醒執(zhí)行就緒:時(shí)間片用完或出現(xiàn)高優(yōu)先 進(jìn)程示意圖附:進(jìn)程狀態(tài)的轉(zhuǎn)換 1就緒狀態(tài) 執(zhí)行狀態(tài) 處于就緒狀態(tài)的進(jìn)程,當(dāng)進(jìn)程調(diào)度程序?yàn)樗峙淞颂幚頇C(jī)后,該進(jìn)程便由就緒狀態(tài)變?yōu)閳?zhí)行狀態(tài),正在執(zhí)行的進(jìn)程也稱為當(dāng)前進(jìn)程。2.執(zhí)行狀態(tài) 阻塞狀態(tài) 正在執(zhí)行的進(jìn)程因發(fā)生某件事件而無法執(zhí)行。例如:進(jìn)程請(qǐng)求訪問臨界資源,而該資源正被其它進(jìn)程訪問,則

3、請(qǐng)求該資源的進(jìn)程將由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)。 3. 執(zhí)行狀態(tài) 就緒狀態(tài) 正在執(zhí)行的進(jìn)程,如果事件發(fā)生或中斷而被暫停執(zhí)行,該進(jìn)程便由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài)。(分時(shí)系統(tǒng)中,時(shí)間片用完;搶占調(diào)度方式中,優(yōu)先權(quán)高搶占處理機(jī))4執(zhí)行狀態(tài) 終止?fàn)顟B(tài) 當(dāng)一個(gè)進(jìn)程經(jīng)完成或發(fā)生某事件,如程序中出現(xiàn)地址越界、非法指令等錯(cuò)誤,而被異常結(jié)束時(shí),進(jìn)程將由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)榻K止?fàn)顟B(tài)。 就緒結(jié)束執(zhí)行阻塞事件發(fā)生進(jìn)程調(diào)度等待某事件完成時(shí)間片用完創(chuàng)建進(jìn)程狀態(tài)轉(zhuǎn)換示意圖五、進(jìn)程控制塊 進(jìn)程的靜態(tài)描述:PCB+程序+數(shù)據(jù)集各部分的作用:進(jìn)程控制塊:用于描述進(jìn)程情況及控制進(jìn)程運(yùn)行所需的全部信息。 程序段:是進(jìn)程中在CPU上執(zhí)行的程序代碼

4、段。數(shù)據(jù)段:一個(gè)進(jìn)程的數(shù)據(jù)段,可以是進(jìn)程對(duì)應(yīng)的程序加工處理的原始數(shù)據(jù),也可以是程序執(zhí)行后產(chǎn)生的中間或最終數(shù)據(jù)。1、進(jìn)程控制塊中的信息 進(jìn)程控制塊中主要包括用于描述和控制進(jìn)程運(yùn)行的信息。(1)進(jìn)程標(biāo)識(shí)符信息 進(jìn)程標(biāo)識(shí)符用于唯一的標(biāo)識(shí)一個(gè)進(jìn)程。 外部標(biāo)識(shí)符。由創(chuàng)建者提供,通常是由字母、數(shù)字組成,往往是用戶(進(jìn)程)訪問該進(jìn)程使用。外部標(biāo)識(shí)符便于記憶,如:計(jì)算進(jìn)程、打印進(jìn)程、發(fā)送進(jìn)程、接收進(jìn)程等。 內(nèi)部標(biāo)識(shí)符:為了方便系統(tǒng)使用而設(shè)置的。在所有的OS中,都為每一個(gè)進(jìn)程賦予一個(gè)唯一的整數(shù),作為內(nèi)部標(biāo)識(shí)符。(2)處理機(jī)狀態(tài)信息(現(xiàn)場(chǎng)信息)主要是由處理機(jī)各種寄存器中的內(nèi)容所組成。 通用寄存器:又稱為用戶可視寄

5、存器,可被用戶程 序訪問,用于暫存信息。 指令寄存器PC:存放要訪問的下一條指令的地址。 程序狀態(tài)字PSW:其中含有狀態(tài)信息。(條件碼、 執(zhí)行方式、中斷屏蔽標(biāo)志等) 用戶棧指針:每個(gè)用戶進(jìn)程有一個(gè)或若干個(gè)與之相關(guān) 的系統(tǒng)棧,用于存放過程和系統(tǒng)調(diào)用參 數(shù)及調(diào)用地址。棧指針指向該棧的棧頂。 (3)進(jìn)程調(diào)度信息 在PCB中還存放了一些與進(jìn)程調(diào)度有關(guān)的信息。進(jìn)程狀態(tài):指明進(jìn)程當(dāng)前的狀態(tài),作為進(jìn)程調(diào)度和對(duì)換時(shí)的依據(jù)。進(jìn)程優(yōu)先級(jí):用于描述進(jìn)程使用處理機(jī)的優(yōu)先級(jí)別的一個(gè)整數(shù),優(yōu)先級(jí)高的進(jìn)程優(yōu)先獲得處理機(jī)。進(jìn)程調(diào)度所需要的其他信息:(進(jìn)程已等待CPU的時(shí)間總和、進(jìn)程已執(zhí)行的時(shí)間總和)阻塞原因:這是進(jìn)程由執(zhí)行狀

6、態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)所等待發(fā)生的事件。2、 PCB的組織方式 常用的組織方式有兩種:鏈接方式、索引方式。(1) 鏈接方式:具有相同狀態(tài)的PCB,用其中的鏈接字,鏈接成一個(gè)隊(duì)列。這樣就可以形成就緒隊(duì)列、若干個(gè)阻塞隊(duì)列和空白隊(duì)列等。對(duì)其中的就緒隊(duì)列常按照進(jìn)程優(yōu)先權(quán)的大小排列,把優(yōu)先權(quán)高的進(jìn)程的PCB排在隊(duì)列前面。執(zhí)行指針就緒隊(duì)列指針阻塞隊(duì)列指針空閑隊(duì)列指針PCB1PCB2PCB3PCB4PCB5PCB6PCB7PCB8PCB94308 79013(2)索引方式: 系統(tǒng)根據(jù)所有進(jìn)程的狀態(tài),建立幾張索引表。例如:就緒索引表、阻塞索引表。并把各索引表在內(nèi)存的首地址記錄在內(nèi)存中的一些專用單元中。每個(gè)索引表的表

7、目中,記錄具有相同狀態(tài)的某個(gè)PCB在PCB表中的地址。執(zhí)行指針就緒表指針阻塞表指針就緒索引表阻塞索引表PCB3PCB4PCB5PCB7PCB6PCB2PCB1按索引方式組織PCB六、進(jìn)程的創(chuàng)建和撤消由原語實(shí)現(xiàn):一般地,把系統(tǒng)狀態(tài)下執(zhí)行的某些具有特定功能的程序段稱為原語和進(jìn)程控制有關(guān)的原語有:創(chuàng)建原語、撤銷原語、阻塞原語、喚醒原語進(jìn)程阻塞過程 當(dāng)有阻塞事件發(fā)生時(shí),進(jìn)程便調(diào)用阻塞原語block把自己阻塞進(jìn)程喚醒過程 當(dāng)阻塞進(jìn)程所期待的事件出現(xiàn)時(shí),則調(diào)用喚醒原語wakeup,將等待事件的進(jìn)程喚醒。 喚醒原語執(zhí)行的過程是:把被阻塞進(jìn)程從阻塞隊(duì)列中移出,將其PCB插入到就緒隊(duì)列中。1、進(jìn)程的創(chuàng)建(1 )

8、申請(qǐng)空白的PCB 為新進(jìn)程分配唯一的數(shù)字標(biāo)識(shí)符,并從PCB表項(xiàng)中申請(qǐng)一個(gè)空白的PCB(2) 為新建立的進(jìn)程分配資源 (3) 初始化PCB 填寫PCB相關(guān)表項(xiàng),將進(jìn)程的狀態(tài)設(shè)置為“就緒”狀態(tài)(4) 將新進(jìn)程插入就緒隊(duì)列入口查PCB鏈表有空PCB?PCB入就緒隊(duì)列將有關(guān)參數(shù)填入PCB相應(yīng)項(xiàng)取空閑PCB塊返回創(chuàng)建失敗無創(chuàng)建原語流程圖有2、進(jìn)程的撤消(1)將該進(jìn)程所擁有的全部資源,或者歸還給它的父進(jìn)程,或者歸還給系統(tǒng)。(2) 撤消該進(jìn)程的PCB表項(xiàng)。 練習(xí)1、正在執(zhí)行的進(jìn)程由于時(shí)間片用完而被暫停執(zhí)行,此時(shí)進(jìn)程應(yīng)從執(zhí)行狀態(tài)變?yōu)開狀態(tài);處于阻塞狀態(tài)的進(jìn)程,在進(jìn)程等待事件出現(xiàn)后,應(yīng)轉(zhuǎn)變?yōu)開狀態(tài),若正在執(zhí)行的

9、進(jìn)程申請(qǐng)I/O則應(yīng)轉(zhuǎn)變?yōu)椋?)狀態(tài)。A. 阻塞 B. 就緒 C.執(zhí)行 D.撤消 E.創(chuàng)建 2、一個(gè)進(jìn)程狀態(tài)轉(zhuǎn)換發(fā)生,有無另一個(gè)轉(zhuǎn)換一定發(fā)生,試舉例說明3.2 進(jìn)程調(diào)度一、調(diào)度級(jí)別二、進(jìn)程調(diào)度功能三、進(jìn)程調(diào)度算法四、進(jìn)程調(diào)度時(shí)機(jī)五、進(jìn)程上下文一、調(diào)度級(jí)別高級(jí)調(diào)度(作業(yè)調(diào)度、宏觀調(diào)度)中級(jí)調(diào)度(交換調(diào)度)進(jìn)程在內(nèi)、外存之間進(jìn)行切換。引入中級(jí)調(diào)度的目的是為了提高內(nèi)存的利用率和系統(tǒng)吞吐量低級(jí)調(diào)度(進(jìn)程調(diào)度)圖:處理機(jī)三級(jí)調(diào)度 作業(yè)調(diào)度 作業(yè)運(yùn)行狀態(tài) 外存 外存(盤)交換區(qū)作業(yè)后備狀態(tài)作業(yè)提交狀態(tài)作業(yè)完成狀態(tài)終止作業(yè)就緒態(tài)阻塞態(tài)主存 進(jìn)程調(diào)度運(yùn)行態(tài)就緒態(tài)阻塞態(tài)二、進(jìn)程調(diào)度功能1、記錄系統(tǒng)中所有進(jìn)程的執(zhí)行

10、情況2、選擇占有處理機(jī)的進(jìn)程3、進(jìn)行進(jìn)程上下文的切換三、進(jìn)程調(diào)度算法進(jìn)程調(diào)度的算法較多,在設(shè)計(jì)進(jìn)程調(diào)度算法時(shí)應(yīng)考慮的因素多,比如:盡量提高資源利用率減少處理機(jī)的空閑時(shí)間對(duì)于用戶作業(yè)要較合理的平均響應(yīng)時(shí)間,以及盡可能地增強(qiáng)CPU的處理能力1、先進(jìn)先出進(jìn)程調(diào)度算法(FIFO) 按照進(jìn)程就緒的先后次序來調(diào)度進(jìn)程 優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單 缺點(diǎn):沒考慮進(jìn)程的優(yōu)先級(jí) 2、基于優(yōu)先數(shù)的調(diào)度(HPFHighest Priority First)優(yōu)先選擇就緒隊(duì)列中優(yōu)先級(jí)最高的進(jìn)程投入運(yùn)行優(yōu)先級(jí)根據(jù)優(yōu)先數(shù)來決定確定優(yōu)先數(shù)的方法靜態(tài)優(yōu)先數(shù)法: 在進(jìn)程創(chuàng)建時(shí)指定優(yōu)先數(shù),在進(jìn)程運(yùn)行時(shí)優(yōu)先數(shù)不變動(dòng)態(tài)優(yōu)先數(shù)法: 在進(jìn)程創(chuàng)建時(shí)創(chuàng)立一

11、個(gè)優(yōu)先數(shù),但在其生命周期內(nèi)優(yōu)先數(shù)可以動(dòng)態(tài)變化。如等待時(shí)間長(zhǎng)優(yōu)先數(shù)可改變思考:靜態(tài)優(yōu)先權(quán)和動(dòng)態(tài)優(yōu)先權(quán)相比:更易于實(shí)現(xiàn)的是: ( 靜態(tài)優(yōu)先權(quán) )運(yùn)行開銷較小的是: ( 靜態(tài)優(yōu)先權(quán) )更需要謹(jǐn)慎確定初始優(yōu)先權(quán)的是: ( 靜態(tài)優(yōu)先權(quán) )更能反映運(yùn)行環(huán)境變化的是: ( 動(dòng)態(tài)優(yōu)先權(quán) ) .兩種占用CPU的方式可剝奪式(可搶占式): 當(dāng)有比正在運(yùn)行的進(jìn)程優(yōu)先級(jí)更高的進(jìn)程就緒時(shí),系統(tǒng)可強(qiáng)行剝奪正在運(yùn)行進(jìn)程的CPU,提供給具有更高優(yōu)先級(jí)的進(jìn)程使用不可剝奪式(不可搶占式 ): 某一進(jìn)程被調(diào)度運(yùn)行后,除非由于它自身的原因不能運(yùn)行,否則一直運(yùn)行下去3、時(shí)間片輪轉(zhuǎn)程序調(diào)度算法(RRRound Robin) 把CPU劃分

12、成若干時(shí)間片,并且按順序賦給就緒隊(duì)列中的每一個(gè)進(jìn)程,進(jìn)程輪流占有CPU,當(dāng)時(shí)間片用完時(shí),即使進(jìn)程未執(zhí)行完畢,系統(tǒng)也剝奪該進(jìn)程的CPU,將該進(jìn)程排在就緒隊(duì)列末尾。同時(shí)系統(tǒng)選擇另一個(gè)進(jìn)程運(yùn)行創(chuàng)建輪轉(zhuǎn)調(diào)度時(shí)間片長(zhǎng)度的確定時(shí)間片長(zhǎng)度變化的影響過長(zhǎng)退化為FCFS算法,進(jìn)程在一個(gè)時(shí)間片內(nèi)都執(zhí)行完,響應(yīng)時(shí)間長(zhǎng)。過短用戶的一次請(qǐng)求需要多個(gè)時(shí)間片才能處理完,上下文切換次數(shù)增加,響應(yīng)時(shí)間長(zhǎng)。對(duì)響應(yīng)時(shí)間的要求:T(響應(yīng)時(shí)間)=N(進(jìn)程數(shù)目)*q(時(shí)間片)時(shí)間片長(zhǎng)度的影響因素:就緒進(jìn)程的數(shù)目:數(shù)目越多,時(shí)間片越?。ó?dāng)響應(yīng)時(shí)間一定時(shí))系統(tǒng)的處理能力:應(yīng)當(dāng)使用戶輸入通常在一個(gè)時(shí)間片內(nèi)能處理完,否則使響應(yīng)時(shí)間,平均周轉(zhuǎn)時(shí)間

13、和平均帶權(quán)周轉(zhuǎn)時(shí)間延長(zhǎng)。4、多隊(duì)列反饋調(diào)度算法:將就緒隊(duì)列分為N級(jí),隊(duì)列級(jí)別越高,時(shí)間片越?。蛔詈笠患?jí)采用時(shí)間片輪轉(zhuǎn),其他隊(duì)列采用先進(jìn)先出;系統(tǒng)從第一級(jí)調(diào)度,當(dāng)?shù)谝患?jí)為空時(shí),系統(tǒng)轉(zhuǎn)向第二個(gè)隊(duì)列,如此類推當(dāng)運(yùn)行進(jìn)程用完一個(gè)時(shí)間片,放棄CPU時(shí),進(jìn)入下一級(jí)隊(duì)列;等待進(jìn)程被喚醒時(shí),進(jìn)入原來的就緒隊(duì)列;當(dāng)進(jìn)程第一次就緒時(shí),進(jìn)入第一級(jí)隊(duì)列 多級(jí)反饋調(diào)度隊(duì)列模型 幾點(diǎn)說明I/O型進(jìn)程:讓其進(jìn)入盡可能高優(yōu)先級(jí)隊(duì)列,以及時(shí)響應(yīng)I/O交互。通常執(zhí)行一個(gè)小時(shí)間片,要求可處理完一次I/O請(qǐng)求的數(shù)據(jù),然后轉(zhuǎn)入到阻塞隊(duì)列。計(jì)算型進(jìn)程:每次都執(zhí)行完時(shí)間片,進(jìn)入更低級(jí)隊(duì)列。最終采用最大時(shí)間片來執(zhí)行,減少調(diào)度次數(shù)。為適應(yīng)一個(gè)

14、進(jìn)程在不同時(shí)間段的運(yùn)行特點(diǎn),I/O完成時(shí),提高優(yōu)先級(jí);時(shí)間片用完時(shí),降低優(yōu)先級(jí);四、 進(jìn)程調(diào)度的時(shí)機(jī)當(dāng)一個(gè)進(jìn)程運(yùn)行完畢,或由于某種錯(cuò)誤而終止運(yùn)行當(dāng)一個(gè)進(jìn)程在運(yùn)行中處于等待狀態(tài)(等待I/O)分時(shí)系統(tǒng)中時(shí)間片到當(dāng)有一個(gè)優(yōu)先級(jí)更高的進(jìn)程就緒(可搶占式),例如:新創(chuàng)建一個(gè)進(jìn)程,一個(gè)等待進(jìn)程變成就緒在進(jìn)程通信中,執(zhí)行中的進(jìn)程執(zhí)行了某種原語操作(P操作,阻塞原語,喚醒原語)CPU調(diào)度過程* 保存現(xiàn)場(chǎng):順序保存,最后一步保存PSW* 選擇要運(yùn)行的程序 (如果沒有就緒進(jìn)程,系統(tǒng)會(huì)安排一個(gè)閑逛進(jìn)程(idle),沒有其他進(jìn)程時(shí)該進(jìn)程一直運(yùn)行,在執(zhí)行過程中可接收中斷)* 恢復(fù)現(xiàn)場(chǎng):最后一步恢復(fù)選中進(jìn)程的PSW六、 進(jìn)程上下文1、進(jìn)程上下文:是進(jìn)程執(zhí)行活動(dòng)全過程的靜態(tài)描述。具體地說,進(jìn)程上下文包括計(jì)算機(jī)系統(tǒng)中與執(zhí)行該進(jìn)程有關(guān)的各種寄存器的值、程序段在經(jīng)過編譯之后形成的機(jī)器指令代碼集(或稱正文段)、數(shù)據(jù)集及各種堆棧值和PCB結(jié)構(gòu)。從CPU的觀點(diǎn)來靜態(tài)地看一個(gè)進(jìn)程時(shí),必須把有關(guān)寄存器和棧區(qū)的內(nèi)容也包括在其中。進(jìn)程上下文結(jié)構(gòu)顯然,一個(gè)進(jìn)程的執(zhí)行是在該進(jìn)程的上下文中執(zhí)行,而當(dāng)系統(tǒng)調(diào)度新進(jìn)程占有處理機(jī)時(shí),新老進(jìn)程的上下文發(fā)生轉(zhuǎn)換。(1) 決定是否做上下文切換以

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論