网站大量收购独家精品文档,联系QQ:2885784924

资源要求演算法-系统程式.PPT

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
资源要求演算法-系统程式

死結的處理 死結簡介 許多行程會共同競爭系統中有限的資源。 當行程所要求的資源正被其他的行程所使用時,該行程就必須要等待。 等待的行程可能會因為所要求的資源也被其他正在等待的行程所持有,而無限期地等待,這種情形稱為死結。 死結特性 (1) 系統中行程共同競爭的有限資源可以分為幾種不同的類型,而每種類型又會有不同數目的資源。 一個行程可以對一個資源進行要求、使用、釋放等 3 種動作。 行程不能要求比系統擁有數目更多的資源。 當行程要求了某種資源時,作業系統會先檢查系統的資源配置表,如果該種資源都正被其他行程所使用,作業系統會將目前要求的這個行程加入所等待資源的等待串列中。 死結特性 (2) 死結的定義如下,系統中的每一個行程都在等待著某些資源,而這些資源卻已經配置給其他正在等待的行程,因而所有的行程都進入無限期地等待而無法完成工作。 死結只有在下列 4 種條件都同時成立下才會發生: 互斥 佔用與等待 禁止搶先 循環等待 死結特性 (3) 我們可以使用系統資源配置圖來描述系統中行程與資源間的狀態。 圓代表系統中的一個行程,圓中寫著行程的名稱。 方塊代表系統中的一種資源,方塊中黑點的數量表示該種資源的數目。 箭號所代表的意義有兩種。 由資源指向行程的箭號表示該資源目前被該行程所持有。 由行程指向資源的箭號則代表該行程目前正在等待該項資源。 資源配置圖 死結偵測 如果系統中所有類型的資源都只有一項的話,我們可以利用資源配置圖來偵測死結。 利用偵測迴圈的演算法來檢查資源配置圖中是否有迴圈存在,就能知道目前系統中是否有死結發生。 使用這種方法的系統必須要持續地更新資源配置圖,並且要定期地執行偵測迴圈的演算法以偵測死結。 如果系統中各類型資源的數目不只一項的話,可以使用死結偵測演算法來偵測死結。 死結解除 當偵測到死結發生,有兩種方法可以解除死結。 終止一些行程,使循環等待的條件不成立。 由發生死結的行程中回收一些資源給其他行程,使禁止搶先的條件不成立。 終止行程的作法中,可以選擇終止所有行程或是一次只終止一個行程,直到死結的狀態解除。 終止所有行程的作法雖然比較簡單,但是行程的工作必須重新或是部分執行,會浪費較多的 CPU 時間。 一次終止一個行程所浪費的 CPU 時間較少,但是每終止一個行程之後都必須要執行一次偵測死結的動作來判定死結是否已經解除。 死結解除 (續) 用回收資源的作法來解除死結,必須持續地由一些行程回收資源,並將回收的資源配置給其他的行程,直到死結的狀態解除。這個作法有幾點需要注意: 選定行程的方法 回溯 飢餓現象 第六章 同步與死結 行程同步 臨界區 號誌 同步的經典問題 臨界區域與監督程式 死結簡介 死結預防 互斥 佔用與等待 禁止搶先 循環等待 死結避免 摘要 死結預防 死結的發生要 4 個條件同時成立。 互斥 佔用與等待 禁止搶先 循環等待 只要破除死結的任一個條件就可以預防死結的發生。 死結預防 -互斥 互斥的條件只存在於不能共享的資源上。 如印表機不能同時列印兩份不同的文件。 可以共享的資源能夠允許多個行程同時使用,因此可以共享的資源不可能造成死結的發生。 但是,我們無法讓不可共享的資源變成可共享,因此無法利用資源的互斥條件來預防死結的發生。 死結預防 - 互斥 某些裝置可共享 如檔案 某些裝置不可共享 如印表機 節論:無法利用資源互斥的條件壁免死結 死結預防 -佔用與等待 不讓佔用與等待的情形在系統中發生,必須要讓所有的行程在取得某項資源時不得先持有任何其他的資源。 行程在執行前必須要一次取得所有需要的資源,但是這個作法比較沒有效率。 或是行程在取得任何資源之前必須要釋放所有持有的資源。 可能造成資源使用率降低或是發生飢餓現象。 死結預防 - 佔用與等待 規定行程必須在執行前一次取得所有資源 沒效率,系統使用率大幅降低 規定行程在取得任何資源前必需先釋放所有資源 飢餓現像 死結預防 -禁止搶先 禁止搶先是指資源一旦配置給行程,就必須等到行程使用完,資源才會被釋放,要解除禁止搶先可以使用以下作法: 當行程持有某些資源並要求新的資源,如果所要求的資源正被使用而必須等待,該行程必須釋放所有持有的資源。 當行程 A 要求某些資源,如果所要求的資源可以使用,就立即配置;但是如果所要求的資源已經配置給其他的行程 B,檢查 B 是否正在等待其他的資源,如果是的話便將 A 所要求的資源由 B 回收並配置給 A。 死結預防 - 禁止搶先 如果要求的資源正被使用而必需等待時,必需先釋放所有資源 搶先、收回等待中行程的資源 死結預防 -循環等待 要使循環等待的條件不會

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档