2022年银行家算法实现.docx





《2022年银行家算法实现.docx》由会员分享,可在线阅读,更多相关《2022年银行家算法实现.docx(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 银行家算法的模拟实现一、设计目的1 、明白多道程序系统中,多个进程并发执行的资源安排;2 、把握死锁的产生的缘由、产生死锁的必要条件和处理死锁的基本方法;3 、把握预防死锁的方法,系统安全状态的基本概念;4 、把握银行家算法,明白资源在进程并发执行中的资源安排策略;5 、懂得死锁防止在当前电脑系统不常使用的缘由;二、设计任务在 Windows7系统的 VS 环境下运行程序;试验三通过最有代表性的防止死锁的算法Dijkstra的银行家算法程序实现来懂得进程并发中的资源安排,死锁防止在死锁解决中的可行性; 设计程序在自动、手动方式下运行,懂得银行家
2、算法的实质;三、设计内容与步骤 A、银行家算法设计的学问预备;1 、死锁概念;在多道程序系统中,虽可借助于多个进程的并发执行,来改善系统的资源利用率,提高系统的吞吐量,但可能发生一种危急 死锁; 所谓死锁 Deadlock,是指多个进程在运行中因争夺资源而造成的一种僵局Deadly_Embrace,当进程处于这种僵持状态时,假设无外力作用,它们都将无法再向前推动;一组进程中,每个进程都无限等待被该组进程中另一进程 所占有的资源,因而永久无法得到的资源,这种现象称为进程死锁,这一组进程就称为死锁进程;2 、关于死锁的一些结论:参加死锁的进程最少是两个两个以上进程才会显现死锁参加死锁的进程至少有两
3、个已经占有资源 参加死锁的全部进程都在等待资源 参加死锁的进程是当前系统中全部进程的子集注:假如死锁发生,会铺张大量系统资源,甚至导致系统崩溃;3 、资源分类;永久性资源:可以被多个进程多次使用可再用资源可抢占资源 不行抢占资源暂时性资源:只可使用一次的资源;如信号量“ 申请 - 安排- 使用 - 释放” 模式,中断信号,同步信号等可消耗性资源4 、产生死锁的四个必要条件:互斥使用资源独占、不行强占不行剥夺、恳求和保持部分安排,占有申请、循环等 待;1 互斥使用资源独占一个资源每次只能给一个进程使用名师归纳总结 - - - - - - -第 1 页,共 5 页精选学习资料 - - - - -
4、- - - - 2 不行强占不行剥夺资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放 3 恳求和保持部分安排,占有申请一个进程在申请新的资源的同时保持对原有资源的占有只有这样才是动态申请,动态安排4 循环等待 存在一个进程等待队列 P1 , P2 , , Pn, 其中 P1 等待 P2 占有的资源, P2 等待 P3 占有的资源, ,5 、 死锁的解决方案 5.1 产生死锁的例子 申请不同类型资源产生死锁 P1:申请打印机 申请扫描仪 使用 释放打印机 释放扫描仪P2:申请扫描仪 申请打印机 使用 释放打印机 释放扫描仪申请同类资源产生死锁如内存Pn 等待 P1 占有的资
5、源,形成一个进程等待环路设有资源 R,R 有 m 个安排单位,由n 个进程 P1,P2, ,Pn n m共享;假设每个进程对R 的申请和释放符合以下原就:* 一次只能申请一个单位 * 满意总申请后才能使用 * 使用完后一次性释放 m=2 ,n=3 资源安排不当导致死锁产生 5.2 死锁预防 : 定义 : 在系统设计时确定资源安排算法,保证不发生死锁;详细的做法是破坏产生死锁的四个必要条件之一破坏“ 不行剥夺” 条件在答应进程动态申请资源前提下规定,一个进程在申请新的资源不能立刻得到满意而变为等待状态之前,必需释放已占有的全部资源,假设需要再重新申请破坏“ 恳求和保持” 条件 要求每个进程在运行
6、前必需一次性申请它所要求的全部资源,且仅当该进程所要资源均可满意时才赐予一次性安排破坏“ 循环等待” 条件 采纳资源有序安排法:名师归纳总结 - - - - - - -第 2 页,共 5 页精选学习资料 - - - - - - - - - 把系统中全部资源编号,进程在申请资源时必需严格按资源编号的递增次序进行,否就操作系统不予安排6 安全状态与担心全状态安全状态:假如存在一个由系统中全部进程构成的安全序列 P1, Pn,就系统处于安全状态;一个进程序列 P1 , , Pn 是安全的,假如对于每一个进程 Pi1 in ,它以后尚需要的资源量不超过系统当前剩余资源量与全部进程 Pj j i 当前占
7、有资源量之和,系统处于安全状态 安全状态肯定是没有死锁发生的 担心全状态 : 不存在一个安全序列,担心全状态肯定导致死锁;B、银行家算法一、银行家算法中的数据结构1 可利用资源向量 Available 它是一个含有 m 个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源数目;其数值随该类资源的安排和回收而动态地转变;假如 Availablej=K, 就表示系统中现有 Rj 类资源 K 个;2 最大需求短阵 Max 这是个 n m 的矩阵,它定义了系统中 n 个进程中的每一个进程对 m 类资源的最大需求;假如 Maxi ,j K,表示进程 i 需要
8、Rj 类资源的最大数目为 K;3 安排短阵 Allocation 这是一个n m 的矩阵,它定义了系统中每一类资源当前已安排给每个进程的资源数;假如Allocationi,jK,表示进程 i 当前已分得 Rj 类资源的数目为K;4 需求矩阵 Need 它是一个 n m 的矩阵, 用以表示每一个进程尚需的各类资源数,假如 Needi,j=K,就表示进程 i 仍需要 Rj 类资源 k个,方能完成其任务;上述三个矩阵间存在下述关系:Needi,j=Maxi,j-Allocationi,j 二、银行家算法设 Requesti是进程 Pi 的恳求向量;假如Requestijk ,表示进程只需要k 个 R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 银行家 算法 实现

限制150内