本文**自linux下的程序控制塊(pcb)程序在作業系統中都有乙個戶口,用於表示這個程序。這個戶口作業系統被稱為pcb(程序控制塊),在linux中具體實現是 task_struct資料結構。
程序控制塊(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、程序同步與通訊機制 用於實現程序間互斥、同步和通訊所需的訊號量等。
9、與程序有關的其他資訊。 如程序記賬資訊,程序占用cpu的時間等。
在linux 中每乙個程序都由task_struct 資料結構來定義. task_struct就是我們通常所說的pcb。
struct task_struct
Linux 程序控制塊PCB
想要有順序地學習linux,入口在這裡哦 linux 目錄索引 學了作業系統後,我們都知道作業系統要想管理乙個物件,它不是直接進行管理的,而是通過得到被管理者的一些有效資訊加以管理的,因此在這裡我們也可以這樣理解,作業系統管理程序,實則是將程序的有效資訊提取出來然後通過管理這些資訊來管理程序,而所有...
程序控制塊(PCB)
為了描述和控制程序的執行,系統為每乙個程序定義了乙個資料結構 程序控制塊。它是程序實體的一部分,是作業系統中最重要的記錄型資料結構。或者說,os是根據pcb來對併發程式的程序進行控制和管理的。總而言之,pcb是程序存在的唯一標誌。程序控制塊中的資訊包括程序識別符號 處理機狀態 程序排程資訊 程序控制...
程序控制塊 PCB
程序控制塊是作業系統中最重要的資料結構,每個程序控制塊包含了作業系統在排程 資源分配 中斷處理 效能監控和分析所需的關於程序的所有資訊。程序控制塊資訊可以分為三類 程序標識資訊 處理器狀態資訊 程序控制資訊。程序識別符號主要包括 當前程序的識別符號 process id,pid 建立這個程序的父程序...