PCB進程控制塊
獨立運行基本單位的標志:創建進程時創建PCB,進程結束時回PCB,進程隨之消亡。系統是通過PCB,感知進程的存在。PCB已成為,進程存在于系統中的唯一標志。
實現間斷性運行方式:進程暫停運行時,必須保留,運行時的CPU等相關信息。進程被再次運行時,需恢復CPU等相關信息。
提供進程管理需要的信息:當進程開始運行時,根據該進程PCB中,記錄的程序和數據,在內存或外存中起始地址指針,找到相應的程序和數據。
提供進程調度需要的信息:只有處于就緒狀態的進程,才能被調度。而進程的狀態就記錄在PCB中、以及優先級、等待時間、已執行時間等其他信息。
實現與其他進程的同步與通信:進程同步機制,用于實現多進程協調運行。在PCB中,具有實現進程通信的區域或通信隊列指針等。
PCB進程控制塊中的信息:PCB中的信息大致上可分為4類,分別是:進程標識符、CPU狀態、調度信息、控制信息。
進程標識符:分外部標識符和內部標識符,外部標識符即進程名稱,可由父進程指定,通常包括字符和數字的組成。內部標識符,由操作系統提供的,具有唯一性的進程ID。
CPU狀態:主要由各種寄存器中內容組成,如通用寄存器、指令計數器(下一條指令的地址)、程序狀態(狀態信息、條件碼、執行方式、屏蔽中斷等標志)和棧指針(指向用于存放過程和系統調用參數及調用地址的系統棧的棧頂)構成。
調度信息:包含進程狀態、進程優先級、其他信息、事件(阻塞原因)。
進程狀態,是進程調度和對換時的依據,優先級高的進程,應優先獲得CPU執行。
控制進程所必須的信息,包括程序和數據的存儲地址,以便調度該進程執行時,能從PCB中找到其程序和數據,進程同步和通信機制,如消息隊列、信號量等。
進程的創建和終止過程
創建進程過程:向操作系統申請空白PCB及進程ID、分配運行所需的資源、初始化PCB、等待插入進程調度就緒隊列。
相關資源或從操作系統或從父進程獲得,資源需求需提前告知,操作系統或父進程好為其分配資源。
PCB至少有2種信息需要初始化
1.標識信息,即將本進程ID和父進程ID填入PCB控制塊中
2.狀態信息,指令計數器指向程序的入口地址、棧指針指向棧頂控制信息。
進程的終止分為:讀取進程狀態、終止進程、終止子孫進程、釋放資源、移出PCB隊列。
操作系統通過進程ID從PCB集合中檢索出該進程的PCB,從中讀出該進程的狀態。
如果該進程狀態為執行態,則終止進程的執行,并重置調度標志位真。
如果該進程擁有子孫進程,則一并將所有子孫進程終止,防止子孫進程成為僵尸進程等不可控的進程。
接著釋放資源,將資源歸還給操作系統或父進程。最后就是移出PCB隊列了,等待其他進程搜集信息。
進程阻塞和喚醒的事件
1.請求系統服務而得不到滿足時,如問系統請求打印。
2.啟動的操作需同步時:如該操作和請求該操作的進程需同步運行。
3.新數據尚未到達:如進程A寫,進程B讀,則A未寫,完B不能讀。
4.無新工作可做。
進程的掛起和激活
1.進程的掛起過程,由進程自己,或其父進程suspend原語完成。將該進程PCB移到指定區域,注意狀態的改變,有可能要重新調度。
-
操作系統
+關注
關注
37文章
6944瀏覽量
124183 -
進程
+關注
關注
0文章
204瀏覽量
14056 -
系統
+關注
關注
1文章
1023瀏覽量
21519 -
PCB
+關注
關注
1文章
1866瀏覽量
13204
發布評論請先 登錄
相關推薦
評論