日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(PCB)进程控制块

發(fā)布時間:2024/4/13 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (PCB)进程控制块 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

1.Unix為了節(jié)省PCB所占主存,PCB分為2部分:

a.常駐內(nèi)存部分:Proc結(jié)構(gòu)。包含進程調(diào)度所必需的信息;

proc結(jié)構(gòu)包含了以下主要幾方面的內(nèi)容:

標識(identification):每個進程有一個唯一的進程ID(PID),屬于特定的某進程組。

較新版本的UNIX還會給每個進程分配一個會話ID(session ID)。

與該進程u區(qū)映射的內(nèi)核地址映射表(kernel address map)的位置。

當前進程狀態(tài)。

前向指針和后向指針,將進程鏈接到調(diào)度隊列,或?qū)⒆枞倪M程鏈接到睡眠隊列。

b.非常駐內(nèi)存部分:User結(jié)構(gòu)。包含進程運行時才要用到的更多其他信息,它隨著用戶程序和數(shù)據(jù)部分換進/換出主存;

c.User區(qū)的字段只能由正在運行的進程cun去。即只有占用CPU的進程才能訪問屬于當前進程的私有User區(qū)。

2.整個系統(tǒng)能夠有一個進程表,稱為Proc數(shù)組。Unix系統(tǒng)最多有50個進程;

3.每一個進程有專用的User區(qū),但是核心根據(jù)進程頁表,通過地址映射機構(gòu),可以訪問當前進程的User區(qū)(好像系統(tǒng)中僅有一個User區(qū))

進程執(zhí)行過程》

執(zhí)行一個PE文件,操作系統(tǒng)會為它創(chuàng)建一個4G(32位)大小的虛擬存儲空間,然后填寫PCB進程控制塊有關(guān)該進程的信息,而在進程控制塊中,有一部分(proc)會常駐在內(nèi)存中,其余保存在磁盤中,等到需要使用時,通過內(nèi)存映射表,把磁盤上的內(nèi)容拷貝到主存中。當進程處于休眠狀態(tài),被cpu調(diào)起時,cpu通過讀取常駐內(nèi)存的proc結(jié)構(gòu)內(nèi)的內(nèi)容,獲取該進程的上下文,上次運行的狀態(tài) 關(guān)鍵字 : MMU ,PE,PCB,PROC

進程控制塊包含三類信息 1.標識信息。用于唯一地標識一個進程,常常分由用戶使用的外部標識符和被系統(tǒng)使用的內(nèi)部標識號。幾乎所有操作系統(tǒng)中進程都被賦予一個唯一的、內(nèi)部使用的數(shù)值型的進程號,操作系統(tǒng)的其他控制表可以通過進程號來交叉引用進程控制表。常用的標識信息包括進程標識符、父進程的標識符、用戶進程名、用戶組名等。 2.現(xiàn)場信息。用于保留一個進程在運行時存放在處理器現(xiàn)場中的各種信息,任何一個進程在讓出處理器時必須把此時的處理器現(xiàn)場信息保存到進程控制塊中,而當該進程重新恢復運行時也應(yīng)恢復處理器現(xiàn)場。常用的現(xiàn)場信息包括通用寄存器的內(nèi)容、控制寄存器(如PSW寄存器)的內(nèi)容、用戶堆戰(zhàn)指針、系統(tǒng)堆餃指針等。 3.控制信息。用于管理和調(diào)度一個進程。常用的控制信息包括:l)進程的調(diào)度相關(guān)信息,如進程狀態(tài)、等待事件和等待原因、進程優(yōu)先級、隊列指引元等2)進程組成信息,如正文段指針、數(shù)據(jù)段指針:引進程間通信相關(guān)信息,如消息隊列指針、信號量等互斥和同步機制4)進程在輔存儲器內(nèi)的地址5)CPU資源的占用和使用信息,如時間片余量、進程己占用CPU的時間、進程己執(zhí)行的時間總和,記賬信息6)進程特權(quán)信息,如在內(nèi)存訪問和處理器狀態(tài)方面的特權(quán)7)資源清單,包括進程所需全部資源、已經(jīng)分得的資源,如主存資源、I/0設(shè)備、打開文件表等。 ●隊列:把處于同一狀態(tài)(例如就緒態(tài))的所有進程控制塊鏈接在一起,這樣的數(shù)據(jù)結(jié)構(gòu)稱為進程隊列(Process Queues)。 ●進程的創(chuàng)建來源于以下四個事件: 1.提交一個批處理作業(yè)。 2.在終端上交互式的登錄。 3.操作系統(tǒng)創(chuàng)建一個服務(wù)進程。 4.存在的進程孵化(spawn)新的進程。 ●進程的創(chuàng)建過程如下描述: 1.在主進程表中增加一項,并從PCB池中取一個空白PCB。 2.為新進程的進程映像中的所有成分分配地址空間。對于進程孵化操作還需要傳遞環(huán)境變量,構(gòu)造共享地址空間。 3.為新進程分配資源,除內(nèi)存空間外,還有其它各種資源。 4.查找輔助存儲器,找到進程正文段并裝入到正文區(qū)。 5.初始化進程控制塊,為新進程分配一個唯一的進程標識符,初始化PSW。 6.把進程加入某一就緒進程隊列,或直接將進程投入運行。 7.通知操作系統(tǒng)的某些模塊,如記賬程序、性能監(jiān)控程序。 ●進程切換的步驟 1.保存被中斷進程的處理器現(xiàn)場信息。 2.修改被中斷進程的進程控制塊的有關(guān)信息,如進程狀態(tài)等。 3.把被中斷進程的進程控制塊加入有關(guān)隊列。 4.選擇下一個占有處理器運行的進程。 5.修改被選中進程的進程控制塊的有關(guān)信息。 6.根據(jù)被選中進程設(shè)置操作系統(tǒng)用到的地址轉(zhuǎn)換和存儲保護信息。 7.根據(jù)被選中進程的信息來恢復處理器現(xiàn)場。

轉(zhuǎn)載于:https://my.oschina.net/u/2002769/blog/1595531

總結(jié)

以上是生活随笔為你收集整理的(PCB)进程控制块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。