![PCB[進程控制塊作用]_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/f345f325-756d-4f9b-abec-03e02b88711f/f345f325-756d-4f9b-abec-03e02b88711f1.gif)
![PCB[進程控制塊作用]_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/f345f325-756d-4f9b-abec-03e02b88711f/f345f325-756d-4f9b-abec-03e02b88711f2.gif)
![PCB[進程控制塊作用]_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/f345f325-756d-4f9b-abec-03e02b88711f/f345f325-756d-4f9b-abec-03e02b88711f3.gif)
![PCB[進程控制塊作用]_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/f345f325-756d-4f9b-abec-03e02b88711f/f345f325-756d-4f9b-abec-03e02b88711f4.gif)
![PCB[進程控制塊作用]_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/25/f345f325-756d-4f9b-abec-03e02b88711f/f345f325-756d-4f9b-abec-03e02b88711f5.gif)
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、pcb為了描述控制進程的運行,系統(tǒng)中存放進程的管理和控制信息的數據結構稱為進程控制塊 (pcb process control block),它是進程實體的一部分,是操作系統(tǒng)中最重要的記錄性數據結 構。它是進程管理和控制的最重要的數據結構,每一個進程均有一個pcb,在創(chuàng)建進程時, 建立pcb,伴隨進程運行的全過程,直到進程撤消而撤消。中文名進程管理塊外文名process control blockpcb屮記錄了操作系統(tǒng)所需的,用于描述進程的當前情況以及控制進程運行的全部信息。pcb 的作用是使一個在多道程序環(huán)境下不能獨立運行的程序(含數據),成為一個能獨立運行的 基本單位,一個能與其他進程并發(fā)
2、執(zhí)行的進程?;蛘哒f,os是根據pcb來對并發(fā)執(zhí)行的進 程進行控制和管理的。例如,當os要調度某進程執(zhí)行時,要從該進程的pcb中查處其現行 狀態(tài)及優(yōu)先級;在調度到某進程后,要根據其pcb中所保存的處理機狀態(tài)信息,設置該進 程恢復運行的現場,并根據其pcb屮的程序和數據的內存始址,找到其程序和數據;進程 在執(zhí)行過程中,當需要和與之合作的進程實現同步,通信或者訪問文件時,也都需要訪問 pcb;當進程由于某種原因而暫停執(zhí)行吋,又須將器斷點的處理機環(huán)境保存在pcb中??梢? 在進程的整個生命期屮,系統(tǒng)總是通過pcb對進程進行控制的,即系統(tǒng)是根據進程的pcb 而不是任何別的什么而感知到該進程的存在的。所以
3、說,pcb是進程存在的唯一標志。 組成pcb進程控制塊是進程的靜態(tài)描述,由pcb、有關程序段和該程序段對其進行操作的數據結 構集三部分組成。在unix或類unix系統(tǒng)中,進程是由進程控制塊,進程執(zhí)行的程序,進程執(zhí)行時所用數據, 進程運行使用的工作區(qū)組成。其中進程控制塊是最重要的一部分。進程控制塊是用來描述進程的當前狀態(tài),本身特性的數據結構,是進程中組成的最關鍵部分, 其屮含有描述進程信息和控制信息,是進程的集中特性反映,是操作系統(tǒng)對進程具體進行識 別和控制的依據。pcb般包括:1程序id (pid、進程句柄):它是唯一的,一個進程都必須對應一個pid。pid 般是整形數 字2. 特征信息:一般
4、分系統(tǒng)進程、用戶進程、或者內核進程等3. 進程狀態(tài):運行、就緒、阻塞,表示進程現的運行情況4. 優(yōu)先級:表示獲得cpu控制權的優(yōu)先級大小5通信信息:進程之間的通信關系的反映,由于操作系統(tǒng)會提供通信信道6. 現場保護區(qū):保護阻塞的進程用7. 資源需求、分配控制信息8. 進程實體信息,指明程序路徑和名稱,進程數據在物理內存還是在交換分區(qū)(分頁)中9. 其他信息:工作單位,工作區(qū),文件信息等作用1進程控制塊:進程控制塊的作用是使一個在多道程序環(huán)境下不能獨立運行的程序(包含數 據),成為一個能獨立運行的基本單位,一個能與其它進程并發(fā)執(zhí)行的進程。2程序段:是進程中能被進程調度程序在cpu±執(zhí)行
5、的程序代碼段。3數據段:一個進程的數據段,可以是進程對應的程序加工處理的原始數據,也可以是程序 執(zhí)行后產生的屮間或最終數據。包含信息在不同的操作系統(tǒng)中對進程的控制和管理機制不同,pcb中的信息多少也不一-樣,通常pcb 應包含如下一些信息。1、進程標識符信息每個進程都必須有一個唯一的標識符,可以是字符串,也可以是一個數字。unix系統(tǒng)中就 是一個整型數。在進程創(chuàng)建時由系統(tǒng)賦予。進程標識符用于唯一的標識一個進程。一個進程 通常有以下兩種標識符。外部標識符。由創(chuàng)建者提供,通常是由字母、數字組成,往往是用戶(進程)訪問該進程使 用。外部標識符便于記憶,如:計算進程、打印進程、發(fā)送進程、接收進程等。內
6、部標識符:為了方便系統(tǒng)使用而設置的。在所有的os中,都為每一個進程賦予一個唯一 的整數,作為內部標識符。它通常就是一個進程的符號,為了描述進程的家族關系,還應該 設置父進程標識符以及子進程標識符。還可以設置用戶標識符,來指示該進程由哪個用八擁 有。2、處理機狀態(tài)信息說明進程當前所處的狀態(tài)。為了管理的方便,系統(tǒng)設計時會將相同的狀態(tài)的進程組成一個隊 列,如就緒進程隊列,等待進程則要根據等待的事件組成多個等待隊列,如等待打印機隊列、 等待等。處理機狀態(tài)信息主要是由處理機各種寄存器中的內容所組成。通用寄存器。又稱為用戶可視寄存器,可被用戶程序訪問,用于暫存信息。指令寄存器。存放要訪問的下一條指令的地址
7、。程序狀態(tài)字psw。其屮含有狀態(tài)信息。(條件碼、執(zhí)行方式、中斷屏蔽標志等)用戶棧指針。每個用戶進程有一個或若干個與之相關的系統(tǒng)棧,用于存放過程和系統(tǒng)調用 參數及調用地址。棧指針指向該棧的棧頂。3進程調度信息在pcb中還存放了一些與進程調度和進程對換有關的信息。(1)進程狀態(tài)。指明進程當前的狀態(tài),作為進程調度和對換時的依據。(2)進程優(yōu)先級。用于描述進程使用處理機的優(yōu)先級別的一個整數,優(yōu)先級高的進程優(yōu)先 獲得處理機。(3)進程調度所需要的其他信息。(進程已等待cpu的時間總和、進程己執(zhí)行的時間總和)(4)事件。這是進程由執(zhí)行狀態(tài)轉變?yōu)樽枞麪顟B(tài)所等待發(fā)生的事件。(阻塞原因)進程上下文:是進程執(zhí)行活
8、動全過程的靜態(tài)描述。包括計算機系統(tǒng)中與執(zhí)行該進程有關的各種寄存器的 值、程序段在經過編譯之后形成的機器指令代碼集、數據集及各種堆棧值和pcb結構。可 按一定的執(zhí)行層次組合,如用戶級上下文、系統(tǒng)級上下文等。進程存在的唯一標志:在進程的整個生命周期屮,系統(tǒng)總是通過pcb對進程進行控制的,亦即,系統(tǒng)是根據進程 的pcb而不是任何別的什么而感知到該進程的存在的,所以說,pcb是進程存在的唯一標志。 進程的特征1. 動態(tài)性2. 并發(fā)性3. 獨立性進程實體是一個能獨立運行的基本單位,同時也是系統(tǒng)屮獨立獲得資源和獨立調度的基本單 位。沒有建立進程的程序,不能作為一個獨立的單位參加運行。4. 異步性5. 結構
9、特性從結構上看,進程由程序段、數據段及pcb三部分組成。進程的狀態(tài)及其轉換1、進程的三種基本狀態(tài)(1)就緒狀態(tài)(ready)當進程己經分配到除cpu以外的所有必要的資源后,只要能再獲得處理機,就可以立即執(zhí) 行。(2)執(zhí)行狀態(tài)(running)(運行狀態(tài))指進程已獲得處理機而執(zhí)行的狀態(tài)。(3)阻塞狀態(tài)(block)(等待狀態(tài))進程因為發(fā)生某個事件而暫停執(zhí)行時的狀態(tài)(如:請求i/o、申請緩沖空間等)。有時也稱“等 待狀態(tài)或“睡眠狀態(tài)。2、進程狀態(tài)轉換 就緒t執(zhí)行:調度 執(zhí)行t等待:等待某個事件發(fā)生而睡眠 等待t就緒:因等待的事件發(fā)生而喚醍 執(zhí)行t就緒:時間片用完或出現高優(yōu)先就緒狀態(tài)t執(zhí)行狀態(tài)處于就
10、緒狀態(tài)的進程,當進程調度程序為它分配了處理機后,該進程便由就緒狀態(tài)變?yōu)閳?zhí)行 狀態(tài),正在執(zhí)行的進程也稱為當前進程。執(zhí)彳丁狀態(tài)t阻塞狀態(tài)正在執(zhí)行的進程因發(fā)生某件事件而無法執(zhí)行。例如:進程請求訪問臨界資源,而該資源正被 其它進程訪問,則請求該資源的進程將由執(zhí)行狀態(tài)轉變?yōu)樽枞麪顟B(tài)。執(zhí)行狀態(tài)t就緒狀態(tài)正在執(zhí)行的進程,如果事件發(fā)生或中斷而被暫停執(zhí)行,該進程便由執(zhí)行狀態(tài)轉變?yōu)榫途w狀態(tài)。(分時系統(tǒng)中,時間片用完;搶占調度方式中,優(yōu)先權高搶占處理機)執(zhí)行狀態(tài)t終止狀態(tài)當一個進程經完成或發(fā)生某事件,如程序中出現地址越界、非法指令等錯誤,而被異常結束 時,進程將由執(zhí)行狀態(tài)轉變?yōu)榻K止狀態(tài)。進程控制在進程管理中的作用進
11、程控制是進程管理中最基本的功能。它用于創(chuàng)建一個新進程,終止一個已完成的進程,或 者去終止一個因出現某事件而使其無法運行下去的進程,還可負責進程運行中的狀態(tài)轉換。 一、創(chuàng)建進程1引起創(chuàng)建進程的事件 在多道程序環(huán)境屮,只有(作為)進程(時)才能在系統(tǒng)屮運行。 因此,為使程序能運行,就必須為它創(chuàng)建進程。導致一個進程去創(chuàng)建另一個進程的典型事件, 可以有以下四類:1)用戶登錄在分時系統(tǒng)中,用戶在終端鍵入登錄命令后,如果是合法用戶,系統(tǒng)將為該終 端建立一個進程,并把它插入到就緒隊列中。2)作業(yè)調度在批處理系統(tǒng)中,當作業(yè)調度程序按照一定的算法調度到某作業(yè)時,便將該作 業(yè)裝入到內存,為它分配必要的資源,并立即
12、為它創(chuàng)建進程,再插入到就緒隊列中。3)提供服務當運行中的用戶程序提出某種請求后,系統(tǒng)將專門創(chuàng)建一個進程來提供用戶所 需要的服務,例如,用戶程序要求進行文件打印,操作系統(tǒng)將為它創(chuàng)建一個打印進程,這樣, 不僅可以使打印進程與該用戶進程并發(fā)執(zhí)行,而且還便于計算出為完成打印任務所花費的時 間。4)應用請求在上述三種情況中,都是由系統(tǒng)內核為它創(chuàng)建一個新進程,而這一類事件則是 基于應用進程的需求,由它創(chuàng)建一個新的進程,以便使新進程以并發(fā)的運行方式完成特定任 務。2.進程的創(chuàng)建過程一旦操作系統(tǒng)發(fā)現了耍求創(chuàng)建新進程的事件后,便調用進程創(chuàng)建原語 creat ()按下述步驟創(chuàng)建一個新進程。1)申請空白pcbo為新
13、進程申請獲得唯一的數字標識符,并從pcb集合中索取一個空白pcbo2)為新進程分配資源。為新進程的程序和數據以及用戶棧分配必要的內存空間。顯然,此 時操作系統(tǒng)必須知道新進程所需要的內存大小。3)初始化進程控制塊。pcb的初始化包括: 初始化標識信息,將系統(tǒng)分配的標識符和父進程標識符,填入新的pcb中。 初始化處理機狀態(tài)信息,使程序計數器指向程序的入口地址,使棧指針指向棧頂。 初始化處理機控制信息,將進程的狀態(tài)設置為就緒狀態(tài)或靜止就緒狀態(tài),對于優(yōu)先級, 通常是將它設置為最低優(yōu)先級,除非用戶以顯式的方式提出髙優(yōu)先級要求。4)將新進程插入就緒隊列,如果進程就緒隊列能夠接納新進程,便將新進程插入到就緒
14、隊 列中。二、進程終止1引起進程終止的事件1)正常結束在任何計算機系統(tǒng)中,都應該有一個表示進程已經運行完成的指示。例如,在 批處理系統(tǒng)屮,通常在程序的最后安排一條hold指令或終止的系統(tǒng)調用。當程序運行到hold 指令吋,將產生一個中斷,去通知os本進程已經完成。2)界常結朿在進程運行期間,由于出現某些錯誤和故障而迫使進程終止。這類異常事件很 多,常見的有:越界錯誤,保護錯,非法指令,特權指令錯,運行超時,等待超時,算術運 算錯,i/o故障。3)外界干預外界干預并非指在本進程運行屮出現了異常事件,而是指進程應外界的請求而 終止運行。這些干預有:操作員或操作系統(tǒng)干預,父進程請求,父進程終止。2.
15、進程的終止過程如果系統(tǒng)發(fā)生了上述要求終止進程的某事件后,os便調用進程終止原 語,按下述過程去終止指定的進程。1)根據被終止進程的標識符,從pcb集合屮檢索出該進程的pcb,從屮讀出該進程狀態(tài)。2)若被終止進程正處于執(zhí)行狀態(tài),應立即終止該進程的執(zhí)行,并置調度標志為真。用于指 示該進程被終止后應重新進行調度。3)若該進程還有子孫進程,還應將其所有子孫進程予以終止,以防他們成為不可控的進程。4)將被終止的進程所擁有的全部資源,或者歸還給其父進程,或者歸還給系統(tǒng)。5)將被終止進程(它的pcb)從所在隊列(或鏈表)屮移岀,等待其它程序來搜集信息。三、 阻塞喚醒1引起進程阻塞和喚醒的事件1)請求系統(tǒng)服務
16、當正在執(zhí)行的進程請求操作系統(tǒng)提供服務時,由于某種原因,操作系統(tǒng)并 不立即滿足該進程的要求時,該進程只能轉變?yōu)樽枞麪顟B(tài)來等待,一旦要求得到滿足后,進 程被喚醒。2)啟動某種操作當進程啟動某種操作后,如果該進程必須在該操作完成之后才能繼續(xù)執(zhí)行, 則必須先使該進程阻塞,以等待該操作完成,該操作完成后,將該進程喚醒。3)新數據尚未到達對于相互合作的進程,如果其中一個進程需要先獲得另一(合作)進程 提供的數據才能運行以對數據進行處理,則是要其所需數據尚未到達,該進程只有(等待) 阻塞,等到數據到達后,該進程被喚醒。4)無新工作可做系統(tǒng)往往設置一些具有某特定功能的系統(tǒng)進程,每當這種進程完成任務后, 便把自己阻塞起來以等待新任務到來,新任務到達后,該進程被喚醒。2進程阻塞過程正在執(zhí)行的進程,當發(fā)現上述某事件后,rh于無法繼續(xù)執(zhí)行,于是進程便 通過調用阻塞原語block把自己阻塞??梢姡M程的阻塞是進程口身的一種主動行為。進入 block a程后,由于此時該進程還處于執(zhí)行狀態(tài),所以應先立即停止執(zhí)行,把進程控制塊中 的現行狀態(tài)由執(zhí)行改為阻塞,并將pcb插入阻塞隊列。如杲系統(tǒng)中設置了因不同事件而阻 塞的多個阻塞隊列,則應將本進程插入到具有相同事件的阻塞(等待
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國小金杯行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國小錐形盒行業(yè)投資前景及策略咨詢研究報告
- 七年級班主任班級工作計劃
- 辦公場景下區(qū)塊鏈技術如何改變供應鏈金融生態(tài)
- 臨床醫(yī)生實習自我鑒定(3篇)
- 腹瀉治療及飲食指導
- AI助力醫(yī)學研究疾病預測的科技創(chuàng)新
- 腫瘤患者的治療原則
- 利用區(qū)塊鏈技術實現科技企業(yè)供應鏈金融的創(chuàng)新發(fā)展融資計劃
- 企業(yè)健康管理中醫(yī)療風險控制
- 提高單病種上報率
- The+Person+I+respect+高考應用文寫作+導學案 高三上學期英語一輪復習專項
- 2025年中考考前物理押題密卷(河北卷)(考試版A4)
- 臨床護理實踐指南2024版
- 人教版七年級下冊數學第七章平面直角坐標系-測試題及答案
- “煎炒烹炸”與中藥療效(安徽中醫(yī)藥大學)知道智慧樹章節(jié)答案
- 行政事業(yè)單位內部控制規(guī)范專題講座
- 加油站卸油時跑冒油應急演練及方案
- 藥品供貨服務方案
- 137案例黑色三分鐘生死一瞬間事故案例文字版
- 醫(yī)院醫(yī)療安全(不良事件)分析整改記錄表
評論
0/150
提交評論