簡(jiǎn)述操作系統(tǒng)進(jìn)程的三種基本狀態(tài)
操作系統(tǒng)里進(jìn)程一般具有三種基本狀態(tài),下面由學(xué)習(xí)啦小編為大家整理了簡(jiǎn)述操作系統(tǒng)進(jìn)程的三種基本狀態(tài)的相關(guān)知識(shí),希望對(duì)大家有幫助!
簡(jiǎn)述操作系統(tǒng)進(jìn)程的三種基本狀態(tài)
進(jìn)程的三種基本狀態(tài):
(1) 就緒狀態(tài):進(jìn)程已獲得除CPU外的所有必要資源,只等待CPU時(shí)的狀態(tài)。一個(gè)系統(tǒng)會(huì)將多個(gè)處于就緒狀態(tài)的進(jìn)程排成一個(gè)就緒隊(duì)列。
(2) 執(zhí)行狀態(tài):進(jìn)程已獲CPU,正在執(zhí)行。單處理機(jī)系統(tǒng)中,處于執(zhí)行狀態(tài)的進(jìn)程只一個(gè);多處理機(jī)系統(tǒng)中,有多個(gè)處于執(zhí)行狀態(tài)的進(jìn)程。
(3) 阻塞狀態(tài):正在執(zhí)行的進(jìn)程由于某種原因而暫時(shí)無法繼續(xù)執(zhí)行,便放棄處理機(jī)而處于暫停狀態(tài),即進(jìn)程執(zhí)行受阻。(這種狀態(tài)又稱等待狀態(tài)或封鎖狀態(tài))
通常導(dǎo)致進(jìn)程阻塞的典型事件有:請(qǐng)求I/O,申請(qǐng)緩沖空間等。
一般,將處于阻塞狀態(tài)的進(jìn)程排成一個(gè)隊(duì)列,有的系統(tǒng)還根據(jù)阻塞原因不同把這些阻塞集成排成多個(gè)隊(duì)列。
在一些系統(tǒng)中,進(jìn)程還有一種很重要的狀態(tài)是:掛起狀態(tài)(是該進(jìn)程暫時(shí)不接受調(diào)度)。
補(bǔ)充:操作系統(tǒng)進(jìn)程的其它狀態(tài)簡(jiǎn)述
掛起狀態(tài)
在不少系統(tǒng)中進(jìn)程只有上述三種狀態(tài),但在另一些系統(tǒng)中,又增加了一些新狀態(tài),最重要的是掛起狀態(tài)。引入掛起狀態(tài)的原因有:
(1) 終端用戶的請(qǐng)求。當(dāng)終端用戶在自己的程序運(yùn)行期間發(fā)現(xiàn)有可疑問題時(shí),希望暫時(shí)使自己的程序靜止下來。亦即,使正在執(zhí)行的進(jìn)程暫停執(zhí)行;若此時(shí)用戶進(jìn)程正處于就緒狀態(tài)而未執(zhí)行,則該進(jìn)程暫不接受調(diào)度,以便用戶研究其執(zhí)行情況或?qū)Τ绦蜻M(jìn)行修改。我們把這種靜止?fàn)顟B(tài)稱為掛起狀態(tài)。
(2) 父進(jìn)程請(qǐng)求。有時(shí)父進(jìn)程希望掛起自己的某個(gè)子進(jìn)程,以便考查和修改該子進(jìn)程,或者協(xié)調(diào)各子進(jìn)程間的活動(dòng)。
(3) 負(fù)荷調(diào)節(jié)的需要。當(dāng)實(shí)時(shí)系統(tǒng)中的工作負(fù)荷較重,已可能影響到對(duì)實(shí)時(shí)任務(wù)的控制時(shí),可由系統(tǒng)把一些不重要的進(jìn)程掛起,以保證系統(tǒng)能正常運(yùn)行。
(4) 操作系統(tǒng)的需要。操作系統(tǒng)有時(shí)希望掛起某些進(jìn)程,以便檢查運(yùn)行中的資源使用情況或進(jìn)行記賬。
創(chuàng)建狀態(tài)
創(chuàng)建一個(gè)進(jìn)程一般要通過兩個(gè)步驟
(1) 為一個(gè)新進(jìn)程創(chuàng)建PCB,并填寫必要的管理信息.
(2) 把該進(jìn)程轉(zhuǎn)入就緒狀態(tài)并插入就緒隊(duì)列之中。當(dāng)一個(gè)新進(jìn)程被創(chuàng)建時(shí),系統(tǒng)已為其分配了PCB,填寫了進(jìn)程標(biāo)識(shí)等信息,但由于該進(jìn)程所必需的資源或其它信息,如主存資源尚未分配等,一般而言,此時(shí)的進(jìn)程已擁有了自己PCB,但進(jìn)程自身還未進(jìn)入主存,即創(chuàng)建工作尚未完成,進(jìn)程還不能被調(diào)度運(yùn)行,其所處的狀態(tài)就是創(chuàng)建狀態(tài)。 引入創(chuàng)建狀態(tài),是為了保證進(jìn)程的調(diào)度必須在創(chuàng)建工作完成后進(jìn)行,以確保對(duì)進(jìn)程控制塊操作的完整性。同時(shí),創(chuàng)建狀態(tài)的引入,也增加了管理的靈活性,操作系統(tǒng)可以根據(jù)系統(tǒng)性能或主存容量的限制,推遲創(chuàng)建狀態(tài)進(jìn)程的提交。對(duì)于處于創(chuàng)建狀態(tài)的進(jìn)程,獲得了其所必需的資源,以及對(duì)其PCB初始化工作完成后,進(jìn)程狀態(tài)便可由創(chuàng)建狀態(tài)轉(zhuǎn)入就緒狀態(tài)。
終止?fàn)顟B(tài)
等待操作系統(tǒng)進(jìn)行善后處理,然后將其PCB清零,并將PCB空間返還系統(tǒng)。當(dāng)一個(gè)進(jìn)程到達(dá)了自然結(jié)束點(diǎn),或是出現(xiàn)了無法克服的錯(cuò)誤,或是被操作系統(tǒng)所終結(jié),或是被其他有終止權(quán)的進(jìn)程所終結(jié),它將進(jìn)入終止?fàn)顟B(tài)。進(jìn)入終止態(tài)的進(jìn)程以后不能再執(zhí)行,但在操作系統(tǒng)中依然保留一個(gè)記錄,其中保存狀態(tài)碼和一些計(jì)時(shí)統(tǒng)計(jì)數(shù)據(jù),供其它進(jìn)程收集。一旦其它進(jìn)程完成了對(duì)終止?fàn)顟B(tài)進(jìn)程的信息提取之后,操作系統(tǒng)將刪除該進(jìn)程。