進程控制塊(PCB)


  • 用來描述和控制進程的運行的一個數據結構——進程控制塊PCB(Process Control Block),是進程實體的一部分,是操作系統中最重要的記錄型數據結構。
    PCB是進程存在的唯一標志
    系統能且只能通過PCB對進程進行控制和調度
    PCB記錄了操作系統所需的、用於描述進程的當前情況以及控制進程運行的全部信息
  • PCB中的信息
    1 進程標識符
    進程標識符用於唯一地標識一個進程。
    一個進程通常有兩種標識符:
    內部標識符:在所有的操作系統中,都為每一個進程賦予了一個惟一的數字標識符,它通常是一個進程的序號。設置內部標識符主要是為了方便系統使用。
    外部標識符:它由創建者提供,通常是由字母、數字組成,往往是由用戶(進程)在訪問該進程時使用。為了描述進程的家族關系,還應設置父進程標識及子進程標識。此外,還可設置用戶標識,以指示擁有該進程的用戶。
    2 處理機狀態
    處理機狀態信息主要是由處理機的各種寄存器中的內容組成的。
    包括:① 通用寄存器;② 指令計數器;③ 程序狀態字PSW;④ 用戶棧指針。
    這些信息顯然和進程相關,因此,進程一旦被中斷,就必須把這些信息保存在PCB中,以便在恢復運行時能完全恢復中斷前的狀態。
    3 進程調度信息
    在PCB中還存放一些與進程調度和進程對換有關的信息,
    包括:
    ① 進程狀態;
    ② 進程優先級;
    ③ 進程調度所需的其它信息,它們與所采用的進程調度算法有關,比如,進程已等待CPU的時間總和、進程已執行的時間總和等;
    ④ 事件,指進程由執行狀態轉變為阻塞狀態所等待發生的事件,即阻塞原因。
    4 進程控制信息
    進程控制信息包括:
    ① 程序和數據的地址;
    ② 進程同步和通信機制,指實現進程同步和進程通信時必需的機制,如消息隊列指針、信號量等,它們可能全部或部分地放在PCB中;
    ③ 資源清單,即一張列出了除CPU以外的、進程所需的全部資源及已經分配到該進程的資源的清單;
    ④ 鏈接指針,它給出了本進程(PCB)所在隊列中的下一個進程的PCB的首地址。
  • PCB的組織方式
    PCB的組織方式是指如何組織和管理多個PCB。
  1. 鏈接方式
      把具有同一狀態的PCB,用其中的鏈接字鏈接成一個隊列。這樣,可以形成就緒隊列、若干個阻塞隊列和空白隊列等。就緒隊列常按進程優先級的高低排列,把優先級高的進程的PCB排在隊列前面。根據阻塞原因的不同把處於阻塞狀態的進程的PCB排成等待I/O操作完成的隊列和等待分配內存的隊列等。
    在這里插入圖片描述
  2. 索引方式 
      系統根據所有進程的狀態建立幾張索引表。例如,就緒索引表、阻塞索引表等,並把各索引表在內存的首地址記錄在內存的一些專用單元中。在每個索引表的表目中,記錄具有相應狀態的某個PCB在PCB表中的地址。
      在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM