《操作系统原理》实验报告六.doc

《操作系统原理》实验报告六.doc

ID:56721653

大小:183.50 KB

页数:18页

时间:2020-07-06

《操作系统原理》实验报告六.doc_第1页
《操作系统原理》实验报告六.doc_第2页
《操作系统原理》实验报告六.doc_第3页
《操作系统原理》实验报告六.doc_第4页
《操作系统原理》实验报告六.doc_第5页
资源描述:

《《操作系统原理》实验报告六.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、2015——2016学年第一学期实验题目实验六银行家算法实验1、了解掌握银行家算法;实验目的1、学会模拟实现资源分配,同时按要求编写和调试一个系统分配资源的简单模拟程序;2、观察死锁产生的条件,并使用适当的算法,有效的防止和避免死锁的发生。实验理论基础设计要求:编制银行家算法通用程序,并检测所给状态的系统安全性。1.银行家算法:设进程i提出请求Request[n],则银行家算法按如下规则进行判断。(1)如果Request[n]>Need[i,n],则报错返回。(2)如果Request[n]>Available,则进程i

2、进入等待资源状态,返回。(3)假设进程i的申请已获批准,于是修改系统状态:Available=Available-RequestAllocation=Allocation+RequestNeed=Need-Request(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。2.安全性检查(1)设置两个工作向量Work=Available;Finish[M]=False(2)从进程集合中找到一个满足下述条件的进程,Finish[i]=FalseNeed<=Work如找到,执行(3);

3、否则,执行(4)(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。Work=Work+AllocationFinish=TrueGOTO2(4)如所有的进程Finish[M]=true,则表示安全;否则系统不安全。1、本试验设计的目的是通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁地发生。要求如下:(1) 模拟一个银行家算法;(2) 初始化时让系统拥有一定的资源;(3) 用键盘输入的方式申请资源;(4) 实验内容和步骤如果预分配后,系统处于安全状态,

4、则修改系统的资源分配情况;(5) 如果预分配后,系统处于不安全状态,则提示不能满足请求。以下提供了部分该实例的源代码,要求同学们根据理论基础部分内容分析该源代码,并将缺失的程序代码补充完整,然后调试这段程序,最终按要求给出相应的结论。#include#include#include#include#defineM3//资源种类m种#defineN4//进程个数nintneed[10][3];//进程还需资源矩阵intmax[10][3];//进程

5、最大需求矩阵intallocation[10][3];//已分配资源矩阵intavailable[3];//可用资源向量intwork[3];//可用资源向量intfinish[10],finish1[10];//记录进程申请的资源是否能分配intpath[10]={0,1,2,3,4,5,6,7,8,9};//记录安全序列intis_save;//是否产生安全序列intmark[10];//记录某进程是否已分配资源voiddisplay(int*a,intn)//显示一维数组{inti;for(i=0;i

6、)printf("%3d",a[i]);}voiddisp()//显示资源列表{inti;printf("NnumbertMaxttneedttallocationtavalible");for(i=0;i

7、n[i],M);printf("t");if(i==0)display(available,M);printf("");}}voidinit(){inti,j;srand(time(NULL));for(i=0;i

8、disp();is_save=0;}voidshowMenu(){puts("*****************************************************");puts("*0.初始化数据1.安全性算法2.银行家算法3.退出*");puts("***************************

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

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

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