死锁避免算法设计报告.docx
《死锁避免算法设计报告.docx》由会员分享,可在线阅读,更多相关《死锁避免算法设计报告.docx(12页珍藏版)》请在三一文库上搜索。
1、漳州师范学院操作系统课程设计死锁防止算法设计姓名:学号:系另U:专业:年级:指导教师:一、课程设计题目介绍含设计目的死锁防止算法设计是通过模拟实现银行家算法实现死锁防止目的:1、了解进程产生死锁的原因,了解为什么要进行死锁的防止。2、掌握银行家算法的数据结构,了解算法的执行过程,加深对银行家算法的理解。3、通过运用Dijkstra的银行家算法来防止多个进程运行中因争夺资源而造成僵局,即死锁要求:本课程设计可以实现教材节中所描述的银行家防止死锁算法。可自定义进程数目、资源类型和每种类型资源的数目;可输入每个进程对每种资源的最大需求、已经获得的数量;当某进程发起某种资源请求时,计算系统状态是否平安
2、思想:操作系统按照银行家制定的规那么为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量那么按当前的申请量分配资源,否那么就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。假设超过那么拒绝分配资源,假设没有超过那么再测试系统现存的资源能否满足该进程尚需的最大资源量,假设能满足那么按当前的申请量分配资源,否那么也要推迟分配,从而到达死锁的防止。二、总体设计含系统的结构、原理框图或模块介绍等1 .系统的结构2 .原理框图从主函数开始进入银行家算法系统,先调用初始化
3、函数ChUShihUa()分别输入Allocationij,Maxij,Ally并判断是否符合条件,在调用函数ShOW(),输出当前状态AVaiIable,Maxij,Allocationij,Needij,然后调用平安性算法函数safe()判断在该时刻是否处于平安状态,并输出平安序列。然后调用银行家算法函数bank。进行试分配后再调用平安性算法函数判断在该时刻是否处于平安状态,假设不平安,那么恢复试分配时改变的值。三、详细设计含主要的数据结构、程序流程图等1 .数据结构资源的总数量Alli:是个含有i个元素的数组,其中的每一个元素代表一类资源的总数量。如果Ani=K,那么表示系统中现有i类资
4、源总数为K个。可利用资源向量AVailabIei:是个含有i个元素的数组,其中的每一个元素代表一类可利用的资源数目。如果AVaiIablei=K,那么表示系统中现有i类资源K个。最大需求矩阵Maxij:这是一个iXj的矩阵,它定义了系统中i个进程的每一个进程对j类资源的最大需求。如果Maxi11jnT再输入该进程申请各类资源的数量,没输入一个要申请的资源数都要用dowhile循环判断申请输入的情况。判断申请是否大于需求量,如果(RequestjNeedkj)那么出错,提示重新输入。否那么继续判断申请是否大于可利用量,如果(ReqUeStjAvailablej)那么出错,本次申请不成功,进程等待
5、否那么进行试分配。试分配后调用平安性检查算法safe()检测此时系统是否处于平安状态如果平安继续运行,如果不平安将试分配的数据恢复。b、进程i发出请求申请k个j资源,Requestij=k(1)检查申请量是否不大于需求量:Requestij=needi,j,假设条件不符重新输入,不允许申请大于需求量。(2)检查申请量是否小于系统中的可利用资源数量:Requestij=availablei,j,假设条件不符就申请失败,阻塞该进程,用goto语句跳转到重新申请资源。(3)假设以上两个条件都满足,那么系统试探着将资源分配给申请的进程,并修改下面数据结构中的数值:AvailableEi,j=Avai
6、lablei,j-Requestij;AllocationiEj=Allocationij+Requestij;neediEj=needij-Requestij;(4)试分配后,执行平安性检查,调用safe()函数检查此次资源分配后系统是否处于平安状态。假设平安,才正式将资源分配给进程;否那么本次试探分配作废,恢复原来的资源分配状态,让该进程等待。(5)用dowhile循环语句实现输入字符y/n判断是否继续进行资源申请。for(j=0;j=Needij的资源类数,如果满足那么给counter加一,如果counter=m,那么表示i进程的每类资源都符合Workj=Needij,把此时进程i的值存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 死锁 避免 算法 设计 报告
