作業系統透過進程控制塊(PCB)對進程進行管理。
進程控制塊(PCB)(系統為了管理進程設定的一個專門的資料結構,用它來記錄進程的外部特徵,描述進程的運動變化過程。系統利用PCB來控制和管理進程,所以PCB是系統感知進程存在的唯一標誌。進程與PCB是一一對應的)
在不同的作業系統中對進程的控制和管理機制不同,PCB中的資訊多少也不一樣,通常PCB應包含以下一些資訊:
1、行程標識符name:每個行程都必須有一個唯一的標識符,可以是字串,也可以是一個數字。
2、進程目前狀態 status:說明進程目前所處的狀態。為了管理的方便,系統設計時會將相同的狀態的進程組成一個佇列,如就緒進程佇列,等待進程則要根據等待的事件組成多個等待佇列,如等待印表機佇列、等待磁碟I/O完成佇列等等。
3、進程對應的程式和資料位址,以便把PCB與其程式和資料連結起來。
4、行程資源清單。列出所擁有的除CPU外的資源記錄,如擁有的I/O設備,開啟的檔案清單等。
5、行程優先權 priority:行程的優先權反映行程的緊迫程度,通常由使用者指定和系統設定。
6、CPU現場保護區cpustatus:當進程因某些原因無法繼續佔用CPU時(如等待印表機),釋放CPU,這時就要將CPU的各種狀態資訊保護起來,為未來再次得到處理機恢復CPU的各種狀態,繼續運作。
7、進程同步與通訊機制 用於實現進程間互斥、同步與通訊所需的信號量等。
8、進程所在佇列PCB的連結字 依照行程所處的現行狀態,進程對應的PCB會參加到不同佇列。 PCB連結字指出該行程所在佇列中下一個行程PCB的首位址。
9、與進程有關的其他資訊。如進程記帳訊息,進程佔用CPU的時間等。
以上是作業系統透過什麼對進程進行管理的詳細內容。更多資訊請關注PHP中文網其他相關文章!