操作系统--死锁避免(银行家算法)
生活随笔
收集整理的這篇文章主要介紹了
操作系统--死锁避免(银行家算法)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
-
可利用資源向量Available。這是一個含有m個元素的數組,其中的每一個元素代表一類可利用的資源數目,其初始值是系統中所配置的該類全部可用資源的數目,其數值隨該類資源的分配和回收而動態地改變。如果Available[j]=K,則表示系統中現有Rj類資源K個。
-
最大需求矩陣Max。這是一個n×m的矩陣,它定義了系統中n個進程中的每一個進程對m類資源的最大需求。如果Max[i,j]=K,則表示進程i需要Rj類資源的最大數目為K。
-
分配矩陣Allocation。這也是一個n×m的矩陣,它定義了系統中每一類資源當前已分配給每一進程的資源數。如果Allocation[i,j]=K,則表示進程i當前已分得Rj類資源的數目為K。
-
需求矩陣Need。這也是一個n×m的矩陣,
用以表示每一個進程尚需的各類資源數。
如果Need[i,j]=K,則表示進程i還需要Rj類資源K個,方能完成其任務。
Need[i,j]=Max[i,j]?Allocation[i,j]Need[i,j]=Max[i,j]-Allocation[i,j]Need[i,j]=Max[i,j]?Allocation[i,j]
假定系統中有五個進程{P0, P1, P2, P3, P4}和三類資源{A, B, C},各種資源的數量分別為10、5、7,在T0時刻的資源分配情況如圖所示。
P1請求資源:P1發出請求向量Request1(1,0,2),系統按銀行家算法進行檢查:
- ① Request1(1, 0, 2)≤Need1(1, 2, 2)
- ② Request1(1, 0, 2)≤Available1(3, 3, 2)
- ③ 系統先假定可為P1分配資源,并修改Available, Allocation1和Need1向量,由此形成的資源變化情況如中的紅色字體所示。
- ④ 再利用安全性算法檢查此時系統是否安全。
總結
以上是生活随笔為你收集整理的操作系统--死锁避免(银行家算法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis-plus分页类型转换工具
- 下一篇: 操作系统--文件管理之索引