進程控制塊中的信息
1) 進程標識符
(1) 內(nèi)部標識符
操作系統(tǒng)為每一個進程賦予的唯一數(shù)字標識符惹谐,系統(tǒng)使用
(2) 外部標識符
有創(chuàng)建者提供,通常有字母與數(shù)字組成砍的,往往是由用戶(進程)在訪問該進程時使用。
描述進程的家族關系莺治,設置父進程標識及子進程標識廓鞠,還可設置用戶標識,以指示擁有該進程的用戶谣旁。
2) 處理機狀態(tài)(處理機狀態(tài)信息)
主要是由處理機的各種寄存器中的內(nèi)容組成的床佳,處理機被中斷時,所有這些信息都必須保存在PCB中榄审,
以便在該進程重新執(zhí)行時砌们,能從斷點繼續(xù)執(zhí)行。
通用寄存器搁进、指令計數(shù)器浪感、程序狀態(tài)字PSW、用戶棧指針
3) 進程調度信息(與進程調度和進程對換有關的信息)
進程狀態(tài)
進程優(yōu)先級
進程調度所需的其它信息:與進程調度算法有關事件饼问,指進程由執(zhí)行狀態(tài)轉變?yōu)樽枞麪顟B(tài)所等待發(fā)生的事件影兽,即阻塞原因
4) 進程控制信息
程序和數(shù)據(jù)的地址
進程同步和通信機制
資源清單:除CPU以外的、進程所需的全部資源及已經(jīng)分配到該進程的資源
鏈接指針:了本進程(PCB)所在隊列中 的下一個進程的 PCB的首地址
作用
PCB 可以被操作系統(tǒng)中的多個模塊讀或修改莱革,如被調度程序峻堰、資源分配 程序讹开、中斷處理程序以及監(jiān)督
和分析程序等讀或修改。
OS是根據(jù) PCB來對 并發(fā)執(zhí)行的進程進行控制和管理
是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結構
? Linux 系統(tǒng)中用 task_struct 數(shù)據(jù)結構捐名,
? Windows:執(zhí)行體進程塊(EPROCESS)
? 使一個在多道程序環(huán)境下不能獨立運行的程序(含數(shù)據(jù))旦万,成為一個能獨立運行的基本單位,
? 一個能與其它進程并發(fā)執(zhí)行的進程
(第四版)
? 1镶蹋、作為獨立運行基本單位的標志
? 2成艘、能實現(xiàn)間斷性運行方式
? 3、提供進程管理所需要的信息
? 4梅忌、提供進程調度所需要的信息
? ? 5狰腌、實現(xiàn)與其他進程的同步與通信
組織方式
(PCB通常是系統(tǒng)內(nèi)存占用區(qū)中的一個連續(xù)存區(qū))
1、線性方式
把所有PCB組織在一張線性表中牧氮,將該表的首地址存放在內(nèi)存的一個專用區(qū)域中琼腔,每次查找是需要掃描全表,
適用于系統(tǒng)中進程數(shù)目不多的情況踱葛。
2丹莲、鏈接方式
把具有同一狀態(tài)的 PCB,用其中 的鏈接字鏈接成一個隊列尸诽,PCB存儲在一個連續(xù)的存區(qū)甥材。
3、索引方式
各個索引表在內(nèi)存單元中的首地址也記錄在內(nèi)存中的專用單元中性含,
用添加索引表的方式記錄具有相應狀態(tài)下的某個PCB在PCB表中的地址洲赵。