操作系统-银行家算法
假設系統中有三類互斥資源R1、R2和R3,可用資源數分別是9、8和5,開始時可用資源數為2、1、0。在T0時刻系統中有P1、P2、P3、P4和P5五個進程,這些進程對資源的最大需求量和已分配資源數如表1所示。進程按照P1→P2→P4→P5→P3序列執行,系統狀態安全嗎?如果按P2→P4→P5→P1→P3的序列呢?
(1)首先執行P2,它還差1個R2資源,系統中還有1個未分配的R2,因此滿足其要求,能夠順利結束進程,釋放出2個R1、2個R2、1個R3。這時,未分配的資源就是:4個R1、2個R2、1個R3。
P2需要資源數=最大需求數-已分配資源數=(2,2,1)-(2,1,1)=(0,1,0)
P2剩余資源數=可用資源數-需要資源數=(2,1,0)-(0,1,0)=(2,0,0)
P2滿足后正常運行,運行結束時釋放所占用的資源,此時,系統剩余資源數為=(2,0,0)+(2,2,1)=(4,2,1)
(2)然后執行P4,它還差一個R3,而系統中剛好有一個未分配的R3,因此滿足其要求,也能夠順利結束,并釋放出其資源。此時未分配的資源數為(4,2,1)
P4需要資源數=最大需求數-已分配資源數=(1,2,1)-(1,2,0)=(0,0,1)
P4剩余資源數=可用資源數-需要資源數=(4,2,1)-(0,0,1)=(4,2,0)
P4滿足后正常運行,運行結束時釋放所占用的資源,此時,系統剩余資源數為=(4,2,0)+(1,2,1)=(5,4,1)
因此,這時系統就有5個R1、4個R2、1個R3。根據這樣的方式推下去,會發現按這種序列可以順利地完成所有的進程,而不會出現死鎖現象。
總結
以上是生活随笔為你收集整理的操作系统-银行家算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统监理师备考经验分享
- 下一篇: 撰写实施方案注意事项