admin管理员组文章数量:1026989
本文是对操作系统概念(第七版)第七章——死锁的学习总结,不足之处欢迎批评指正。
上文中我们提到了资源分配图算法,只适合每种资源只有一个实例的情况。当每种资源不止一个实例时,资源分配图算法将不再适合,因此需要用到我们这一章要讲的银行家算法。
银行家算法的命名是它可以用了银行系统,当不能满足所有客户的需求时,银行绝不会分配其资金。
当新进程进入系统时,它必须说明其可能需要的每种类型资源实例的最大数量这一数量不可以超过系统资源的总和。当用户申请一组资源时,系统必须确定这些资源的分配是否处于安全状态,如何安全,则分配,如果不安全,那么进程必须等待指导某个其他进程释放足够资源为止。
为了实现银行家算法,需要定义一下几个数据结构,n表示系统进程的个数,m表示资源类型的种类:
available——长度为m的向量,代表每种资源的现有实例的数量。
max——n*m矩阵,定义每个进程的最大需求量。
allocation——n*M矩阵,定义每个进程现在已经分配的各类资源的实例数量。
本文是对操作系统概念(第七版)第七章——死锁的学习总结,不足之处欢迎批评指正。
上文中我们提到了资源分配图算法,只适合每种资源只有一个实例的情况。当每种资源不止一个实例时,资源分配图算法将不再适合,因此需要用到我们这一章要讲的银行家算法。
银行家算法的命名是它可以用了银行系统,当不能满足所有客户的需求时,银行绝不会分配其资金。
当新进程进入系统时,它必须说明其可能需要的每种类型资源实例的最大数量这一数量不可以超过系统资源的总和。当用户申请一组资源时,系统必须确定这些资源的分配是否处于安全状态,如何安全,则分配,如果不安全,那么进程必须等待指导某个其他进程释放足够资源为止。
为了实现银行家算法,需要定义一下几个数据结构,n表示系统进程的个数,m表示资源类型的种类:
available——长度为m的向量,代表每种资源的现有实例的数量。
max——n*m矩阵,定义每个进程的最大需求量。
allocation——n*M矩阵,定义每个进程现在已经分配的各类资源的实例数量。
版权声明:本文标题:操作系统面试—死锁(二)——银行家算法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1727379088a737720.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论