進(jìn)程描述與控制(二)

先引入問題:
OS如何感知進(jìn)程,控制進(jìn)程及其所用的系統(tǒng)資源?
OS內(nèi)核如何提供這些功能,操作系統(tǒng)也是進(jìn)程嗎?
進(jìn)程創(chuàng)建過程要做些什么?
進(jìn)程激活從外存回到內(nèi)存后,是原來的位置還是不同位置?

進(jìn)程所用資源的管理

操作系統(tǒng)就像公司的財(cái)務(wù)一樣,需要管理許多表;這些表記錄著資源和進(jìn)程;那么OS中就有常用的表:
內(nèi)存表 .I/O表. 進(jìn)程表(鏈表結(jié)構(gòu)).文件表,而且 還互相關(guān)聯(lián)。
存儲表:內(nèi)存分配情況,外存分配情況,共享內(nèi)存區(qū)權(quán)限,虛擬內(nèi)存;
I/O表:設(shè)備狀態(tài),I/O狀態(tài),I/O傳輸位置;
文件表:外存位置,狀態(tài),屬性,管理系統(tǒng);
進(jìn)程表:進(jìn)程位置,進(jìn)程屬性:id,狀態(tài),進(jìn)程位置;一組程序;

進(jìn)程映像

包含:程序,數(shù)據(jù),用戶程序,堆棧.PCB

操作內(nèi)核功能

Process Management :進(jìn)程創(chuàng)建終止.調(diào)度.狀態(tài)轉(zhuǎn)換.同步與通信.管理PCB
Memory Management:為進(jìn)程分配地址空間.對換.段/頁管理
I/O Management :緩存,為進(jìn)程分配I/O 通道和設(shè)備
支撐功能:中斷管理,時(shí)鐘管理,原子操作管理,統(tǒng)計(jì)管理,堅(jiān)持管理

進(jìn)程原語

進(jìn)程切換/ 創(chuàng)建與終止 /阻塞與喚醒 / 掛起與激活

進(jìn)程切換

時(shí)鐘中斷,io中斷,存儲訪問失效,陷阱,管理程序進(jìn)入
切換操作過程:保存現(xiàn)場,更新PCB,移入隊(duì)列,內(nèi)存空間修改,恢復(fù)現(xiàn)場
進(jìn)程切換與模式切換
模式切換:用戶態(tài)-系統(tǒng)態(tài)-用戶態(tài),不一定有進(jìn)程切換;
進(jìn)程切換一定有模式切換;

進(jìn)程創(chuàng)建與終止

為進(jìn)程分配id
分配空間,共享空間
初始化PCB
建立鏈接
正常結(jié)束
超時(shí)終止
內(nèi)存不足
找不到文件
死鎖

進(jìn)程阻塞喚醒

請求系統(tǒng)服務(wù)
啟動某種服務(wù):IO
新數(shù)據(jù)未達(dá)到
無新工作
當(dāng)阻塞發(fā)生,進(jìn)程調(diào)用原語將自己阻塞,狀態(tài)變?yōu)椤白枞麪顟B(tài)”,并進(jìn)入阻塞隊(duì)列
當(dāng)阻塞期待的事件發(fā)生,有關(guān)進(jìn)行調(diào)用原語,將進(jìn)程喚醒,狀態(tài)為read,插入就緒隊(duì)列

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容