進程是操作系統的資源分配和獨立運行的基本單位。它一般由以下三個部分組成。
###進程控制塊
進程創建時,操作系統就新建一個PCB結構,它之后就常駐內存,任一時刻可以存取, 在進程結束時刪除。PCB是進程實體的一部分,是進程存在的唯一標志。
當創建一個進程時,系統為該進程建立一個PCB;當進程執行時,系統通過其PCB 了 解進程的現行狀態信息,以便對其進行控制和管理;當進程結束時,系統收回其PCB,該進 程隨之消亡。操作系統通過PCB表來管理和控制進程。
表2-1 PCB通常包含的內容

表2-1是一個PCB的實例,PCB主要包括進程描述信息、進程控制和管理信息、資源 分配清單和處理機相關信息等。各部分的主要說明如下:
1) 進程描述信息
進程標識符:標志各個進程,每個進程都有一個并且是唯一的標識號。
用戶標識符:進程歸屬的用戶,用戶標識符主要為共享和保護服務。
2) 進程控制和管理信息
進程當前狀態:描述進程的狀態信息,作為處理機分配調度的依據。
進程優先級:描述進程搶占處理機的優先級,優先級高的進程可以優先獲得處理機。
3) 資源分配清單,用于說明有關內存地址空間或虛擬地址空間的狀況;所打開文件的 列表和所使用的輸入/輸出設備信息。
4) 處理機相關信息,主要指處理機中各寄存器值,當進程被切換時,處理機狀態信息 都必須保存在相應的PCB中,以便在該進程重新執行時,能再從斷點繼續執行。
在一個系統中,通常存在著許多進程,有的處于就緒狀態,有的處于阻塞狀態,而且阻塞的原因各不相同。為了方便進程的調度和管理,需要將各進程的PCB用適當的方法組織起來。目前,常用的組織方式有鏈接方式和索引方式兩種。鏈接方式將同一狀態的PCB鏈接成一個隊列,不同狀態對應不同的隊列,也可以把處于阻塞狀態的進程的PCB,根據其阻塞原因的不同,排成多個阻塞隊列。索引方式是將同一狀態的進程組織在一個索引表中,索引表的表項指向相應的PCB,不同狀態對應不同的索引表,如就緒索引表和阻塞索引表等。
###程序段
程序段就是能被進程調度程序調度到CPU執行的程序代碼段。注意,程序可以被多個進程共享,就是說多個進程可以運行同一個程序。
###數據段
一個進程的數據段,可以是進程對應的程序加工處理的原始數據,也可以是程序執行時產生的中間或最終結果。
- 1. 操作系統概述
- 2.操作系統(計算機)進程和線程管理
- 2.1 進程的概念和特征
- 2.2 進程的狀態與轉換
- 2.3 進程控制
- 2.4 進程的組
- 2.5 進程的通信
- 2.6 線程的概念和多線程模型
- 2.7 處理機調度
- 2.8 操作系統典型調度算法
- 2.9 進程同步的基本概念
- 2.10 實現臨界區互斥的基本方法
- 2.11 信號量
- 2.12 管程:管程的定義、組成及基本特性
- 2.13 經典進程同步問題1
- 2.14 經典進程同步問題2:讀者-寫者問題
- 2.15經典進程同步問題3:哲學家進餐問題
- 2.16 經典進程同步問題4:吸煙者問題
- 2.17 死鎖的概念以及產生死鎖的原因
- 2.18 關于進程和線程的知識點匯總