進程的組成部分

在UNIX系統中進程由以下三部分組成:

進程控制塊PCB
數據段
正文段
進程控制塊(PCB)是用來記錄進程狀態及其他相關信息的數據結構,PCB是進程存在的唯一標誌,PCB存在則進程存在。系統創建進程時會產生一個PCB,撤銷進程時,PCB也自動消失。

UNIX系統爲了節省進程控制塊所佔的內存空間,把每個進程控制塊分成兩部分。一部分常駐內存,不管進程是否正佔有處理器運行,系統經常會對這部分內容進行查詢和處理,常駐部分內容包括:進程狀態、優先數、過程特徵、數據段始址、等待原因和隊列指針等,這是進行處理器調度時必須使用的一些主要信息。另一部分非常駐內存,當進程不佔有處理器時,系統不會對這部分內容進行查詢和處理,因此這部分內容可以存放在磁盤的對換區中,它隨用戶的程序和數據部分換進或換出內存。

UNIX系統把進程的數據段又劃分成三部分:用戶棧區(供用戶程序使用的信息區);用戶數據區(包括用戶工作數據和非可重入的程序段);系統數據區(包括系統變量和對換信息)。

正文段是可重入的程序,能被若干進程共享。爲了管理可共享的正文段,UNIX設置了一張正文表,每個正文段都佔用一個表目,用來指出該正文段在內存和磁盤上的位置、段的大小以及調用該段的進程數等情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章