admin管理员组文章数量:1130349
安全状态与不安全状态
- 安全序列:如果系统按照这种序列分配资源,则每个进程都能顺利完成,安全序列可能有多个。
- 不安全状态:如果分配了资源之后,系统找不到任何一个安全序列,那么系统就进入了不安全状态。这意味着之后所有进程可能都无法顺利执行下去,除非有进程提前归还了一些资源。
- 如果系统处于安全状态,就一定不会发生死锁;
- 如果系统处于不安全状态,则可能发生死锁;
银行家算法的核心思想
在资源分配之前预先判断这次分配是否会导致系统进入不安全状态,以此决定是否答应资源的分配请求。
银行家算法最初是Dijkstra为银行系统设计的,以确保银行在发放现金贷款时,不会发生不能满足所有客户需要的情况。后来用于操作系统中避免死锁,即用于确保不会发生不能满足所有资源分配请求的情况。
银行家算法的解题步骤
- 首先判断当前时刻的安全性;(安全性算法)
- 若安全,当某进程提出资源申请Request时,先与Need和Available进行比较,判断请求是否小于进程所需,请求是否小于系统还剩下的资源。
- 若都小于,则根据请求资源量进行分配(即更改表)。
- 列表计算判断安全性,求出安全序列。
安全性算法:检查当前的剩余可用资源是否能满足某个进程的最大需求。如果可以,则把进程加入安全序列,并把该进程持有的资源全部回收。
例题
(1)利用安全性算法对资源分配情况进行分析。发现存在安全序列:{P1,P3,P4,P2,P0}。故系统是安全的。
(2) 请求Request(1,0,2)小于进程所需也小于系统所剩余资源。根据请求资源量进行分配,更改表内容如下:
注:图片出自b站UP主夜连三(实在不想重新画表了,所以抱来了截图~)
计算安全性:
利用安全性算法分析,存在安全序列:{P3,P4,P1,P0,P2},系统是安全的。可以将P1请求的资源Request(1,0,2)分配给它。
安全状态与不安全状态
- 安全序列:如果系统按照这种序列分配资源,则每个进程都能顺利完成,安全序列可能有多个。
- 不安全状态:如果分配了资源之后,系统找不到任何一个安全序列,那么系统就进入了不安全状态。这意味着之后所有进程可能都无法顺利执行下去,除非有进程提前归还了一些资源。
- 如果系统处于安全状态,就一定不会发生死锁;
- 如果系统处于不安全状态,则可能发生死锁;
银行家算法的核心思想
在资源分配之前预先判断这次分配是否会导致系统进入不安全状态,以此决定是否答应资源的分配请求。
银行家算法最初是Dijkstra为银行系统设计的,以确保银行在发放现金贷款时,不会发生不能满足所有客户需要的情况。后来用于操作系统中避免死锁,即用于确保不会发生不能满足所有资源分配请求的情况。
银行家算法的解题步骤
- 首先判断当前时刻的安全性;(安全性算法)
- 若安全,当某进程提出资源申请Request时,先与Need和Available进行比较,判断请求是否小于进程所需,请求是否小于系统还剩下的资源。
- 若都小于,则根据请求资源量进行分配(即更改表)。
- 列表计算判断安全性,求出安全序列。
安全性算法:检查当前的剩余可用资源是否能满足某个进程的最大需求。如果可以,则把进程加入安全序列,并把该进程持有的资源全部回收。
例题
(1)利用安全性算法对资源分配情况进行分析。发现存在安全序列:{P1,P3,P4,P2,P0}。故系统是安全的。
(2) 请求Request(1,0,2)小于进程所需也小于系统所剩余资源。根据请求资源量进行分配,更改表内容如下:
注:图片出自b站UP主夜连三(实在不想重新画表了,所以抱来了截图~)
计算安全性:
利用安全性算法分析,存在安全序列:{P3,P4,P1,P0,P2},系统是安全的。可以将P1请求的资源Request(1,0,2)分配给它。
版权声明:本文标题:【操作系统】避免死锁之银行家算法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1763508015a2938660.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论