实习报告书写参考-----银行家算法的实现.docx
《实习报告书写参考-----银行家算法的实现.docx》由会员分享,可在线阅读,更多相关《实习报告书写参考-----银行家算法的实现.docx(9页珍藏版)》请在第壹文秘上搜索。
1、实习报告书写参考银行家算法的实现一、设计目的:熟悉银行家算法,理解系统产生死锁的原因及避免死锁的方法,加深记忆。二、设计内容设计一个n个并发进程共享m个系统资源的系统。进程可动态申请资源和释放资源,系统按各进程的申请动态的分配资源。要求采用银行家算法实现。三、开发环境WilKk)WS环境,VC6.O平台。四、分析设计V实验原理银行家算法是从当前状态出发,逐个按安全序列检查各客户中谁能完成其工作,然后假定其完成工作且归还全部贷款,再进而检查下一个能完成工作的客户。如果所有客户都能完成工作,则找到一个安全序列,银行家才是安全的。与预防死锁的儿种方法相比较,限制条件少,资源利用程度提高了。缺点:该算
2、法要求客户数保持固定不变,这在多道程序系统中是难以做到的;该算法保证所有客户在有限的时间内得到满足,但实时客户要求快速响应,所以要考虑这个因素;由于要寻找一个安全序列,实际上增加了系统的开销.Bankeralgorithm最重要的一点是:保证操作系统的安全状态!这也是操作系统判断是否分配给一个进程资源的标准!那什么是安全状态?举个小例子,进程P需要申请8个资源(假设都是一样的),已经申请了5个资源,还差3个资源。若这个时候操作系统还剩下2个资源。很显然,这个时候操作系统无论如何都不能再分配资源给进程P了,因为即使全部给了他也不够,还很可能会造成死锁。若这个时候操作系统还有3个资源,无论P这一次
3、申请几个资源,操作系统都可以满足他,因为操作系统可以保证P不死锁,只要他不把剩余的资源分配给别人,进程P就一定能顺利完成任务。为什么银行家算法是可行的呢?这里需要严格的证明一下。不管任何时候,操作系统分配资源的时候都可以保证当前接受资源的进程不会陷入死锁,因为操作系统总是可以满足该进程需要的资源的。假设有n个进程pl,p2,p3,-pn,最后一个分配到资源的是pi,pi还需要mi个资源,假设此时操作系统还有m个资源剩余。那么很显然m=mi!而且如果之后操作系统又把资源分配给其他进程了,假设是pj,pj还需要mj个资源,同理可知m=mj!也就是说在所有的进程中,还需要的资源数总是有小于m的!这样
4、就可以保证资源数永远不会为0,即使可能暂时性为0。另外,还需要保证资源数不会减少!而且,所有己经分配到资源的进程总有一天会归还它所拥有的资源!根据操作系统再分配的时候的状态即可判定。V二程序结构当进程Pi提出资源申请时,系统执行下列步骤:(1)若ReqUeStiWNeedi,转(2);否则错误返回(2)若ReqUeStiWAvailable,转(3);否则进程等待(3)假设系统分配了资源,则有:Avai!able:=AvaiIable-Rcquesti;Allocationi:=Allocationi+Rcquesti;Needi:=Needi-Requesti若系统新状态是安全的,则分配完成
5、若系统新状态是不安全的,则恢更原状态,进程等待模拟实现Dijkstra的银行家算法以避免死锁的出现.分两部分组成:第一部分:银行家算法(扫描)1 .如果RequcstCNced,则转向2;否则,出错2 .如果Requcst=AvaiIablc,则转向3,否则等待3 .系统试探分配请求的资源给进程4 .系统执行安全性算法第二部分:安全性算法1 .设置两个向量(D.工作向量:%rk=Available(表示系统可提供给进程继续运行所需要的各类资源数目)(2) .FiniSh:表示系统是否有足够资源分配给进程(True:有;False:没有).初始化为False2 .若Finishi=Falsc&N
6、ccd数据结构:假设有U个进程N类资源,则有如下数据结构:MAXM*NM个进程对N类资源的最大需求量AVAILABLEN系统可用资源数ALLOCATIONM*NM个进程己经得到N类资源的资源量NEEDM*NM个进程还需要N类资源的资源量V四程序流程图:五.运行示例及结果分析TO时刻可用资源(AVailabIe)A:3,B:3,C:2请求分配时间:14:07:29经测试,可为该进程分配资源。以下为资源分配表资源WorkNeedAllocationWork+AIlocIDPOlFinishABC03030201A02BC020200AB00C0503A02BCTRUEP03050302000101
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实习 报告 书写 参考 银行家 算法 实现