進(jìn)程控制塊中的信息
1) 進(jìn)程標(biāo)識(shí)符
(1) 內(nèi)部標(biāo)識(shí)符
操作系統(tǒng)為每一個(gè)進(jìn)程賦予的唯一數(shù)字標(biāo)識(shí)符,系統(tǒng)使用
(2) 外部標(biāo)識(shí)符
有創(chuàng)建者提供,通常有字母與數(shù)字組成,往往是由用戶(進(jìn)程)在訪問該進(jìn)程時(shí)使用。
描述進(jìn)程的家族關(guān)系,設(shè)置父進(jìn)程標(biāo)識(shí)及子進(jìn)程標(biāo)識(shí),還可設(shè)置用戶標(biāo)識(shí),以指示擁有該進(jìn)程的用戶。
2) 處理機(jī)狀態(tài)(處理機(jī)狀態(tài)信息)
主要是由處理機(jī)的各種寄存器中的內(nèi)容組成的,處理機(jī)被中斷時(shí),所有這些信息都必須保存在PCB中,
以便在該進(jìn)程重新執(zhí)行時(shí),能從斷點(diǎn)繼續(xù)執(zhí)行。
通用寄存器、指令計(jì)數(shù)器、程序狀態(tài)字PSW、用戶棧指針
3) 進(jìn)程調(diào)度信息(與進(jìn)程調(diào)度和進(jìn)程對(duì)換有關(guān)的信息)
進(jìn)程狀態(tài)
進(jìn)程優(yōu)先級(jí)
進(jìn)程調(diào)度所需的其它信息:與進(jìn)程調(diào)度算法有關(guān)事件,指進(jìn)程由執(zhí)行狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)所等待發(fā)生的事件,即阻塞原因
4) 進(jìn)程控制信息
程序和數(shù)據(jù)的地址
進(jìn)程同步和通信機(jī)制
資源清單:除CPU以外的、進(jìn)程所需的全部資源及已經(jīng)分配到該進(jìn)程的資源
鏈接指針:了本進(jìn)程(PCB)所在隊(duì)列中 的下一個(gè)進(jìn)程的 PCB的首地址
作用
PCB 可以被操作系統(tǒng)中的多個(gè)模塊讀或修改,如被調(diào)度程序、資源分配 程序、中斷處理程序以及監(jiān)督
和分析程序等讀或修改。
OS是根據(jù) PCB來對(duì) 并發(fā)執(zhí)行的進(jìn)程進(jìn)行控制和管理
是操作系統(tǒng)中最重要的記錄型數(shù)據(jù)結(jié)構(gòu)
? Linux 系統(tǒng)中用 task_struct 數(shù)據(jù)結(jié)構(gòu),
? Windows:執(zhí)行體進(jìn)程塊(EPROCESS)
? 使一個(gè)在多道程序環(huán)境下不能獨(dú)立運(yùn)行的程序(含數(shù)據(jù)),成為一個(gè)能獨(dú)立運(yùn)行的基本單位,
? 一個(gè)能與其它進(jìn)程并發(fā)執(zhí)行的進(jìn)程
(第四版)
? 1、作為獨(dú)立運(yùn)行基本單位的標(biāo)志
? 2、能實(shí)現(xiàn)間斷性運(yùn)行方式
? 3、提供進(jìn)程管理所需要的信息
? 4、提供進(jìn)程調(diào)度所需要的信息
? ? 5、實(shí)現(xiàn)與其他進(jìn)程的同步與通信
組織方式
(PCB通常是系統(tǒng)內(nèi)存占用區(qū)中的一個(gè)連續(xù)存區(qū))
1、線性方式
把所有PCB組織在一張線性表中,將該表的首地址存放在內(nèi)存的一個(gè)專用區(qū)域中,每次查找是需要掃描全表,
適用于系統(tǒng)中進(jìn)程數(shù)目不多的情況。
2、鏈接方式
把具有同一狀態(tài)的 PCB,用其中 的鏈接字鏈接成一個(gè)隊(duì)列,PCB存儲(chǔ)在一個(gè)連續(xù)的存區(qū)。

3、索引方式
各個(gè)索引表在內(nèi)存單元中的首地址也記錄在內(nèi)存中的專用單元中,
用添加索引表的方式記錄具有相應(yīng)狀態(tài)下的某個(gè)PCB在PCB表中的地址。
