没有合适的资源?快使用搜索试试~ 我知道了~
操作系统用银行家算法解决死锁问题
3星 · 超过75%的资源 需积分: 9 14 下载量 33 浏览量
2010-07-02
17:56:38
上传
评论 2
收藏 63KB DOC 举报
温馨提示
试读
9页
设计一个n 个并发进程共享m 个系统资源的系统。进程可动态申请资源和释放资源,系统按各进程的申请动态的分配资源。要求采用银行家算法实现。
资源推荐
资源详情
资源评论
银行家算法的实现
一、设计目的:
熟悉银行家算法,理解系统产生死锁的原因及避免死锁的方法,加深记忆。
二、设计内容
设计一个 n 个并发进程共享 m 个系统资源的系统。进程可动态申请资源和释放资源,
系统按各进程的申请动态的分配资源。要求采用银行家算法实现。
三、开发环境
windows 环境,VC6.0 平台。
四、分析设计
<一>实验原理
银行家算法是从当前状态出发,逐个按安全序列检查各客户中谁能完成其工作,然后
假定其完成工作且归还全部贷款,再进而检查下一个能完成工作的客户。如果所有客户都
能完成工作,则找到一个安全序列,银行家才是安全的。
与预防死锁的几种方法相比较,限制条件少,资源利用程度提高了。
缺点:该算法要求客户数保持固定不变,这在多道程序系统中是难以做到的;该算法
保证所有客户在有限的时间内得到满足,但实时客户要求快速响应,所以要考虑这个因素;
由于要寻找一个安全序列,实际上增加了系统的开销.
Banker algorithm 最重要的一点是:保证操作系统的安全状态!这也是操作系统
判断是否分配给一个进程资源的标准!那什么是安全状态?举个小例子,进程 P 需要申请
8 个资源(假设都是一样的),已经申请了 5 个资源,还差 3 个资源。若这个时候操作系
统还剩下 2 个资源。很显然,这个时候操作系统无论如何都不能再分配资源给进程 P 了,
因为即使全部给了他也不够,还很可能会造成死锁。若这个时候操作系统还有 3 个资源,
无论 P 这一次申请几个资源,操作系统都可以满足他,因为操作系统可以保证 P 不死锁,
只要他不把剩余的资源分配给别人,进程 P 就一定能顺利完成任务。 为什么银行家算法
是可行的呢?这里需要严格的证明一下。不管任何时候,操作系统分配资源的时候都可以
保证当前接受资源的进程不会陷入死锁,因为操作系统总是可以满足该进程需要的资源的。
假设有 n 个进程 {p1, p2, p3, … pn} ,最后一个分配到资源的是 pi , pi 还需要 mi 个
资源,假设此时操作系统还有 m 个资源剩余。那么很显然 m>=mi !而且如果之后操作
系统又把资源分配给其他进程了,假设是 pj , pj 还需要 mj 个资源,同理可知
m>=mj!也就是说在所有的进程中,还需要的资源数总是有小于 m 的!这样就可以保证
资源数永远不会为 0 ,即使可能暂时性为 0 。另外,还需要保证资源数不会减少!而且,
所有已经分配到资源的进程总有一天会归还它所拥有的资源!根据操作系统再分配的时候
的状态即可判定。
<二>程序结构
当进程 pi 提出资源申请时,系统执行下列步骤:
资源评论
- fanghaoye2012-05-10报告内容比较完整,可是程序代码运行不出来。linking 时间很长。
cuijiangping
- 粉丝: 2
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功