閑談進程控制塊PCB的五大作用

發表時間:2020-10-23 10:13:25 人氣:756

為了使參與并發執行的每個程序,包含數據都能獨立地運行,在操作系統中必須為之配置一個專門的數據結構,稱為進程控制塊(PCB,Process Control Block)。進程與PCB是一一對應的,用戶進程不能修改。


進程控制塊PCB的作用:


為了便于系統描述和管理進程的運行,在OS的核心為每個進程專門定義了一個數據結構——進程控制塊PCB(Process Control Block)。PCB作為進程實體的一部分,記錄了操作系統所需的,用于描述進程的當前情況以及管理進程運行的全部信息,是操作系統中最重要的記錄型數據結構。PCB的作用是使一個在多道程序環境下不能獨立運行的程序(含數據)成為一個能獨立運行的基本單位,一個能與其他進程并發執行的進程。


(2)PCB能實現間斷性運行方式。在多道程序環境下,程序是采用停停走走間斷性的運行方式運行的。當進程因阻塞而暫停運行時,它必須保留自己運行時的CPU現場信息。在有了PCB后,系統就可以將CPU現場信息保存在被中斷進程的PCB中,供該進程再次被調度執行時恢復CPU現場時使用。由此,可再次明確,在多道程序環境下,作為傳統意義上的靜態程序,因其并不具有保護或保存自己運行現場的手段,無法保證其運行結果的可再現性,從而失去運行的意義。


(3)PCB提供進程管理所需要的信息。當調度程序調度到某進程運行時,只能根據該進程PCB中記錄的程序和數據在內存或外存中的始址指針,找到相應的程序和數據;在進程運行過程中,當需要訪問文件系統中的文件或I/O設備時,也都需要借助于PCB中的信息。另外,還可根據PCB中的資源清單了解到該進程所需的全部資源等??梢?,在進程的整個生命周期中,操作系統總是根據PCB實施對進程的控制和管理。


(4)PCB提供進程調度所需要的信息。只有處于就緒狀態的進程才能被調度執行,而在PCB中就提供了進程出于何種狀態的信息。如果進程處于就緒狀態,系統便將它插入到進程就緒隊列中,等待著調度程序的調度;另外在進行調度時往往還需要了解進程的其他信息,如在優先級調度算法中,就需要知道進程的優先級。在有些較為公平的調度算法中,還需要知道進程的等待時間和已執行過的事件等。


(5)PCB實現與其他進程的同步與通信。進程同步機制是用于實現諸進程的協調運行的,在采用信號量機制時,它要求在每個進程中都設置有相應的用于同步的信號量。在PCB中還具有用于實現進程通信的區域或通信隊列指針等。


此文關鍵字: pcb行業