為了使參與并發(fā)執(zhí)行的每個(gè)程序,包含數(shù)據(jù)都能獨(dú)立地運(yùn)行,在操作系統(tǒng)中必須為之配置一個(gè)專門的數(shù)據(jù)結(jié)構(gòu),稱為進(jìn)程控制塊(PCB,Process Control Block)。進(jìn)程與PCB是一一對應(yīng)的,用戶進(jìn)程不能修改。
進(jìn)程控制塊PCB的作用:
為了便于系統(tǒng)描述和管理進(jìn)程的運(yùn)行,在OS的核心為每個(gè)進(jìn)程專門定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)——進(jìn)程控制塊PCB(ProcessControlBlock)。PCB作為進(jìn)程實(shí)體的一部分,記錄了操作系統(tǒng)所需的,用于描述進(jìn)程的當(dāng)前情況以及管理進(jìn)程運(yùn)行的全部信息,是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu)。PCB的作用是使一個(gè)在多道程序環(huán)境下不能獨(dú)立運(yùn)行的程序(含數(shù)據(jù))成為一個(gè)能獨(dú)立運(yùn)行的基本單位,一個(gè)能與其他進(jìn)程并發(fā)執(zhí)行的進(jìn)程。
(1)PCB作為獨(dú)立運(yùn)行基本單位的標(biāo)志。當(dāng)一個(gè)程序(含數(shù)據(jù))配置了PCB后,就表示它已經(jīng)是一個(gè)能在多道程序環(huán)境下獨(dú)立運(yùn)行的、合法的基本單位,也就具有取得OS服務(wù)的權(quán)力,如打開文件系統(tǒng)中的文件,請求獲得系統(tǒng)中的I/O設(shè)備,以及與其它相關(guān)進(jìn)程的進(jìn)行通信等。因此,當(dāng)系統(tǒng)創(chuàng)建一個(gè)新進(jìn)程時(shí),就為它建立了一個(gè)PCB。進(jìn)程結(jié)束時(shí)又回收其PCB,進(jìn)程于是也隨之消亡。系統(tǒng)是通過PCB感知進(jìn)程的存在的。事實(shí)上,PCB已成為進(jìn)程存在于系統(tǒng)中的唯一標(biāo)志。
(2)PCB能實(shí)現(xiàn)間斷性運(yùn)行方式。在多道程序環(huán)境下,程序是采用停停走走間斷性的運(yùn)行方式運(yùn)行的。當(dāng)進(jìn)程因阻塞而暫停運(yùn)行時(shí),它必須保留自己運(yùn)行時(shí)的CPU現(xiàn)場信息。在有了PCB后,系統(tǒng)就可以將CPU現(xiàn)場信息保存在被中斷進(jìn)程的PCB中,供該進(jìn)程再次被調(diào)度執(zhí)行時(shí)恢復(fù)CPU現(xiàn)場時(shí)使用。由此,可再次明確,在多道程序環(huán)境下,作為傳統(tǒng)意義上的靜態(tài)程序,因其并不具有保護(hù)或保存自己運(yùn)行現(xiàn)場的手段,無法保證其運(yùn)行結(jié)果的可再現(xiàn)性,從而失去運(yùn)行的意義。
(3)PCB提供進(jìn)程管理所需要的信息。當(dāng)調(diào)度程序調(diào)度到某進(jìn)程運(yùn)行時(shí),只能根據(jù)該進(jìn)程PCB中記錄的程序和數(shù)據(jù)在內(nèi)存或外存中的始址指針,找到相應(yīng)的程序和數(shù)據(jù);在進(jìn)程運(yùn)行過程中,當(dāng)需要訪問文件系統(tǒng)中的文件或I/O設(shè)備時(shí),也都需要借助于PCB中的信息。另外,還可根據(jù)PCB中的資源清單了解到該進(jìn)程所需的全部資源等。可見,在進(jìn)程的整個(gè)生命周期中,操作系統(tǒng)總是根據(jù)PCB實(shí)施對進(jìn)程的控制和管理。
(4)PCB提供進(jìn)程調(diào)度所需要的信息。只有處于就緒狀態(tài)的進(jìn)程才能被調(diào)度執(zhí)行,而在PCB中就提供了進(jìn)程出于何種狀態(tài)的信息。如果進(jìn)程處于就緒狀態(tài),系統(tǒng)便將它插入到進(jìn)程就緒隊(duì)列中,等待著調(diào)度程序的調(diào)度;另外在進(jìn)行調(diào)度時(shí)往往還需要了解進(jìn)程的其他信息,如在優(yōu)先級調(diào)度算法中,就需要知道進(jìn)程的優(yōu)先級。在有些較為公平的調(diào)度算法中,還需要知道進(jìn)程的等待時(shí)間和已執(zhí)行過的事件等。
(5)PCB實(shí)現(xiàn)與其他進(jìn)程的同步與通信。進(jìn)程同步機(jī)制是用于實(shí)現(xiàn)諸進(jìn)程的協(xié)調(diào)運(yùn)行的,在采用信號量機(jī)制時(shí),它要求在每個(gè)進(jìn)程中都設(shè)置有相應(yīng)的用于同步的信號量。在PCB中還具有用于實(shí)現(xiàn)進(jìn)程通信的區(qū)域或通信隊(duì)列指針等。
-
pcb
+關(guān)注
關(guān)注
4324文章
23155瀏覽量
399148 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6875瀏覽量
123577 -
進(jìn)程
+關(guān)注
關(guān)注
0文章
204瀏覽量
13974
發(fā)布評論請先 登錄
相關(guān)推薦
評論