死锁实验三玲语2.doc

死锁实验三玲语2.doc

ID:62021542

大小:226.59 KB

页数:19页

时间:2021-04-14

死锁实验三玲语2.doc_第1页
死锁实验三玲语2.doc_第2页
死锁实验三玲语2.doc_第3页
死锁实验三玲语2.doc_第4页
死锁实验三玲语2.doc_第5页
资源描述:

《死锁实验三玲语2.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验三死锁的避免一、实验目的当系统的总资源数m小于或等于所有进程对资源的最大需求时,就可能产生死锁。死锁会引起计算机系统的瘫痪。银行家算法是在实现资源分配时避免死锁的一个著名算法,该算法是在能确保系统处于安全状态时才把资源分配给申请者。通过本实验使学生能进一步理解死锁的概念,并能选择一个算法来避免死锁。采用银行家算法来预防死锁是可靠的,但也是非常保守的,因为它限制了进程对资源的存取,从而降低了进程的并发运行程度。死锁检测并不限制进程对资源的申请,只要有,就分配,但这也可能造成死锁。但由于死锁并不是经常发生的,故大大提高了系统运行的效率。通过本实验,

2、可使学生进一步加深理解和掌握死锁的检测算法。二、实验环境C/C++/C#Cfree/MicrosoftVisualStudio6.0/MicrosoftVisualStudio.NET2005三、实验的重点和难点1、避免死锁的实质在于如何防止系统进入不安全状态。2、在银行家算法中用到了可利用资源向量Available、最大需求矩阵Max、分配矩阵Allocation、需求矩阵Need18等数据结构,而在安全性检查算法中则还要用到工作向量Work和完成向量Finish等数据结构。3、安全性检查算法的目的是寻找一个安全序列。四、实验内容系统中有m个同类

3、资源被n个进程共享,每个进程对资源的最大需求数分别为S1,S2,…,Sn,且Max(Si)<=m,(i=1,2,…n)。进程可以动态地申请资源和释放资源。编写一个程序,实现银行家算法,当系统将资源分配给某一进程而不会死锁时,就分配之。否则,推迟分配,并显示适当的信息。数据结构和操作说明参照教材上有关银行家算法的资源分配表,设计适当的数据结构。进程要分配的资源数可由随机数决定或命令行输入,但要注意数据的有效范围。分别使用检测“进程—资源循环等待链”的方法来检测进程的死锁状态。对于相同的进程资源分配、占用次序,比较两个算法的结果。数据结构死锁检测算法的

4、数据结构参考书教材资源占用矩阵、进程等待资源矩阵Q、资源总数向量和可用资源向量W。检测“进程—资源循环等待链”的算法可对所有的资源和进程进行编号,并设置一张资源分配表和一张进程等待表。五、实验要求:画出实现银行家算法的程序框图,说明数据结构。在每当进程要分配资源时以及释放资源后,打印输出资源分配或释放后的分配情况表,如可能产生死锁,显示适当信息;如不会产生死锁,更新系统的资源分配状态表。画出所实现算法的框图,说明所采用的数据结构。进程和所申请的资源可用命令行或随机数决定,进行一次分配就检测死锁,输出所涉及的表格数据。1818六、实验代码及实验结果:

5、#include#includetypedefstruct{intA;intB;intC;}RES;#definefalse0#definetrue1//系统中所有进程数量#definePNUMBER3//最大需求矩阵RESMax[PNUMBER];//已分配资源数矩阵RESAllocation[PNUMBER];//需求矩阵RESNeed[PNUMBER];//可用资源向量RESAvailable={0,0,0};//安全序列intsafe[PNUMBER];voidsetConfig(){inti=0,j=

6、0;18printf("================开始手动配置资源==================");//可分配资源printf("输入可分配资源");scanf("%d%d%d",&Available.A,&Available.B,&Available.C);//最大需求矩阵MAXprintf("输入最大需求矩阵%dx%d",PNUMBER,PNUMBER);for(i=0;i

7、rintf("输入已分配矩阵%dx%d",PNUMBER,PNUMBER);for(i=0;i

8、置资源==================");}voidloadConfig(){FILE*fp1;if((fp1=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。