西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)編程開(kāi)發(fā)其它知識(shí) → 進(jìn)程管理筆記-進(jìn)程的阻塞、喚醒、掛起、激活

進(jìn)程管理筆記-進(jìn)程的阻塞、喚醒、掛起、激活

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站整理時(shí)間:2010/11/22 8:43:45字體大。A-A+

作者:佚名點(diǎn)擊:1195次評(píng)論:0次標(biāo)簽: 進(jìn)程管理

  • 類型:系統(tǒng)優(yōu)化大。57KB語(yǔ)言:中文 評(píng)分:6.6
  • 標(biāo)簽:
立即下載
進(jìn) 程 控 制

2.21、2.22

一些概念:

  進(jìn)程控制是進(jìn)程管理中最基本的功能。創(chuàng)建、終止、可負(fù)責(zé)進(jìn)程運(yùn)行中的狀態(tài)轉(zhuǎn)換。

  進(jìn)程控制一般是由OS的內(nèi)核中的原語(yǔ)來(lái)實(shí)現(xiàn)的。

  原語(yǔ)(Primitive)是由若干條指令組成的,用于完成一定功能的一個(gè)過(guò)程。

  它與一般過(guò)程的區(qū)別在于:它們是“原子操作(Action Operation)”。即不可分割、不允許中斷、常駐內(nèi)存。


  •進(jìn)程圖(Process Graph) 進(jìn)程圖是用于描述一個(gè)進(jìn)程的家族關(guān)系的有向樹(shù)。


2.2.3 進(jìn)程的阻塞與喚醒  

  1. 引起進(jìn)程阻塞和喚醒的事件  

    有下述幾類事件會(huì)引起進(jìn)程阻塞或被喚醒! 

    •請(qǐng)求系統(tǒng)服務(wù)(如請(qǐng)求打印服務(wù))

    •啟動(dòng)某種操作(如I/O操作)

    •新數(shù)據(jù)尚未到達(dá)

    •無(wú)新工作可做(某些特定功能的系統(tǒng)進(jìn)程、如發(fā)送進(jìn)程)


  2.進(jìn)程阻塞過(guò)程

    無(wú)法繼續(xù)執(zhí)行,調(diào)用阻塞原語(yǔ)block把自己阻塞,是主動(dòng)行為。

    •立即停止執(zhí)行

    •PCB中的現(xiàn)行狀態(tài)由“執(zhí)行”改為“阻塞” 并將PCB插入相應(yīng)阻塞隊(duì)列

    •轉(zhuǎn)調(diào)度程序進(jìn)行重新調(diào)度,將處理機(jī)分配給另一就緒進(jìn)程并進(jìn)行切換

   。ūA舯蛔枞M(jìn)程的處理機(jī)狀態(tài)(在PCB中),再按新進(jìn)程的PCB中的處理機(jī)狀態(tài)設(shè)置CPU的環(huán)境)。


  3.進(jìn)程喚醒過(guò)程  

    當(dāng)被阻塞進(jìn)程所期待的事件出現(xiàn)時(shí),將等待該事件的進(jìn)程喚醒。(如I/O完成)

    喚醒原語(yǔ)執(zhí)行的過(guò)程是:

    •把被阻塞的進(jìn)程移出阻塞隊(duì)列

    •將PCB中的現(xiàn)行狀態(tài)由阻塞改為就緒,然后再將該P(yáng)CB插入到就緒隊(duì)列中。

      應(yīng)當(dāng)指出,block原語(yǔ)和wakeup原語(yǔ)是一對(duì)作用剛好相反的原語(yǔ)。

      故在某進(jìn)程中調(diào)用了阻塞原語(yǔ),則必須在與之相合作的另一進(jìn)程中或其他相關(guān)的進(jìn)程中安排喚醒原語(yǔ),以能喚醒阻塞進(jìn)程;

      否則,其將長(zhǎng)久地處于阻塞狀態(tài),從而再無(wú)機(jī)會(huì)繼續(xù)運(yùn)行。


2.2.4 進(jìn)程的掛起與激活  

  1.進(jìn)程的掛起

    當(dāng)出現(xiàn)了引起進(jìn)程掛起的事件時(shí)(比如,用戶進(jìn)程請(qǐng)求將自己掛起,或父進(jìn)程請(qǐng)求掛起某子進(jìn)程)。

    掛起原語(yǔ)suspend( )的執(zhí)行過(guò)程是:

    •首先檢查被掛起進(jìn)程的狀態(tài)并進(jìn)行相應(yīng)操作(執(zhí)行態(tài)、活動(dòng)就緒 - 靜止就緒; 活動(dòng)阻塞 - 靜止阻塞)。

    •為便于用戶或父進(jìn)程考查該進(jìn)程的運(yùn)行情況,把該進(jìn)程的PCB復(fù)制到某指定的內(nèi)存區(qū)域。

    •最后,若被掛起的進(jìn)程正在執(zhí)行,則轉(zhuǎn)向調(diào)度程序重新調(diào)度,從而將處理機(jī)重新分配。


  2.進(jìn)程的激活過(guò)程  

    當(dāng)發(fā)生激活進(jìn)程的事件時(shí)(如父進(jìn)程或用戶進(jìn)程請(qǐng)求激活指定進(jìn)程)

    激活原語(yǔ)active( )激活過(guò)程:

    •激活原語(yǔ)將進(jìn)程從外存調(diào)入內(nèi)存

    •檢查該進(jìn)程的現(xiàn)行狀態(tài)并進(jìn)行相應(yīng)操作(靜止就緒-活動(dòng)就緒; 靜止阻塞 - 活動(dòng)阻塞)。

    假如采用的是搶占調(diào)度策略,則每當(dāng)有新進(jìn)程進(jìn)入就緒隊(duì)列時(shí),

    檢查是否要進(jìn)行重新調(diào)度,即比較被激活進(jìn)程與當(dāng)前進(jìn)程的優(yōu)先級(jí),決定處理機(jī)歸屬。

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)