熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 操作系統 >> 正文

操作系統課程第三章-進程和線程的描述與控制[4]

2013-11-15 15:54:08  來源: 操作系統 

  父進程請求請求終止子進程

  終止原語的主要功能

  進程終止原語的主要功能是撤消一個進程其算法思想如下

  從PCB總鏈中查找到被終止進程的PCB若無則出錯返回;

  若被終止進程正處於運行狀態則立即停止該進程的執行設置重新調度標志;

  若被終止進程有子孫進程還應將該進程的子孫進程予以撤消;

  對於被終止進程所占有的資源或者歸還給父進程或者歸還給系統;

  最後撤消它的進程控制塊若需要轉調度程序

   進程阻塞

  引起進程阻塞的原因有

  請求系統服務如請求分配資源但尚無資源分配

  新數據尚未到達如合作進程之間

  無新工作可做進程已完成了給定任務新任務未到

  阻塞原語的主要功能

  阻塞原語的主要功能是將進程由執行狀態轉為阻塞狀態其算法思想如下

  停止當前執行進程將進程狀態改為阻塞;

  保存該進程的現場信息;

  將該進程PCB插入到等待隊列;

  轉進程調度程序

   進程喚醒

  當進程等待的事件發生時由發現者進程將其喚醒

  喚醒原語的主要功能是將進程喚醒其算法思想如下

  從等待隊列中移出相應進程;

  將該進程狀態改為就緒並將進程插入就緒隊列;

  轉進程調度或返回

  阻塞與喚醒的關系

  一個進程由執行狀態轉變為阻塞狀態是這個進程自己調用阻塞原語去完成的

  進程由阻塞狀態轉變為就緒狀態是另一個發現者進程調用喚醒原語實現的

  一般發現者進程與被喚醒進程是合作的並發進程

   進程的掛起

  在某些系統中希望人為將進程掛起使之處於靜止狀態

  進程掛起的原因有

  內存不足在外存掛起

  用戶要求可以掛起進程以騰出資源

  進程特性周期性執行等待下一次執行時可能掛起

  父進程請求父進程希望掛起子進程檢查

  操作系統要求掛起一個問題進程

  掛起狀態

  基於上述原因需引入一個新的狀態掛起狀態

  掛起原語的主要功能

  掛起原語的主要功能是將指定進程掛起其算法思想如下

  若進程執行則停止其執行;

[]  []  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/czxt/201311/24168.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.