二死锁的检测与解除.DOC

上传人:国*** 文档编号:537283 上传时间:2018-10-18 格式:DOC 页数:10 大小:178.50KB
下载 相关 举报
二死锁的检测与解除.DOC_第1页
第1页 / 共10页
二死锁的检测与解除.DOC_第2页
第2页 / 共10页
二死锁的检测与解除.DOC_第3页
第3页 / 共10页
二死锁的检测与解除.DOC_第4页
第4页 / 共10页
二死锁的检测与解除.DOC_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、实验二 死锁的检测与解除一、 实验目的:当系统为进程分配资源时,若未采取任何限制性措施,则系统必须提供检测和解除死锁的手段,为此,系统必须做到:(1)保存有关资源的请求和分配信息;(2)提供一种算法,以利用这些信息来检测系统是否已进入死锁状态。某一状态为死锁状态的充分条件是:当且仅当某一状态的资源分配图是不可完全简化的。通过该实验,可以充分理解死锁的检测与解除的基本原理。二、 实验题目:设计一个 m 个并发进程共享 n 个系统资源的系统。进程可动态申请资源和释放资源,系统按各进程的申请动态的分配资源。要求用死锁检测算法检测当某一进程提出资源分配请求时,系统会不会陷入死锁状态;如若陷入死锁状态要

2、求用某种算法解除死锁三实验源程序文件名:sisuo .cpp执行文件名:sisuo.exe四、实验分析1)本实验采用死锁检测算法检测死锁,死锁检测的数据结构如下 (1)可利用资源向量 available,它表示了 n 类资源中每一类资源的可用数目。(2)把不占用资源的进程用 finishi=true 标示(3)从进程集合中找到一个 requesti0|requestij0)Finish=falseJudge()开始(1) 主函数流程图检测函数 judge()开始Flag=check()Flag=true 提示不会发生死锁程序结束Flag=false,显示死锁进程 pi=0调用解锁函数jiesu

3、o()(2)judge 函数流程图Check()函数开始while(flag=TRUE)反复判断finishi=FALSE if(K0) return FALSE; if(K=0) return TRUE;(3) check 函数流程图解锁函数 jiesuo()开始初始化数组 sumi=0统计死锁进程资源 sumi=sumi+allocationij;找出最大死锁进程 iworkj+=allocationflagj;finishflag=TRUE; pflag=FALSEFlag=check()Flag=true 成功解除死锁Flag=false程序结束(4) 解锁函数流程图3)源代码#inc

4、lude#include#includeusing namespace std; /名字空间#define TRUE 1#define FALSE 0 /布尔值int compare(int *request,int *work,int N,int k) /如果 Requestiwork 则返回 falseint j,c=0;for(j=0;jworkj) c+; if(c0) return FALSE;else if(c=0) return TRUE;/判断int check(int *work,int *request,int *allocation,int *finish,int *p,

5、int m,int n)int i,j,flag=TRUE,K=0;while(flag=TRUE) /反复判断,直到无法判断flag=FALSE;for(i=0;i0) return FALSE;else if(K=0) return TRUE;/*/解锁函数void jiesuo(int *work,int *request,int *allocation,int *finish,int *p,int m,int n)int i,j,t,flag;int *sum=new intm;for(i=0;im;coutn;coutavailablei;coutallocationij;coutm

6、axij;coutrequestij;cout0|requestij0) finishi=FALSE; for(j=0;jn;j+) workj=availablej; /初始情况judge(work,request,allocation,finish,p,m,n); /开始判断四、 调试结果:以上显示为未发生死锁的调试结果发生死锁,经解锁算法,撤销占资源最大进程,死锁状况成功解除五、 心得体会:通过该实验熟悉了指针的基本使用方法,死锁的检测与解除和银行家算法的数据结构基本相同,至于实验中所实施的死锁解除算法也只是简单撤销某一引起死锁进程所占有资源的简单释放,该实验只是简单模拟了死锁的检测与解除;最大的收获是对死锁定理的理解和对死锁解除算法的认识与实现机理实记。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。