银行家算法实习报告

银行家算法实习报告

ID:9889593

大小:51.50 KB

页数:7页

时间:2018-05-14

银行家算法实习报告_第1页
银行家算法实习报告_第2页
银行家算法实习报告_第3页
银行家算法实习报告_第4页
银行家算法实习报告_第5页
资源描述:

《银行家算法实习报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、操作系统原理上机报告院系:计算机学院班级:姓名:学号:二O一一年六月实验一简要说明一.银行家算法简介银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待实现银行家算法,系统必须设置若干数据结构。  要解释银行家算法,必须先解释操作系统安全状态和不安全状态。  安全序列是指一个进程序列{P1,…,Pn}是安全的,如果对于每一个进程Pi(1≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进

2、程Pj(j

3、;Reqeust[m];Available[3]={2,3,3};p[n]={0,0,0,0,0};Allocation是指占有的资源数目,Need是指还需要的资源数目,Reqeust是请求的资源数目,Available是指可以提供的资源数目,p[]表示各个进程的状态。三.流程图开始输入需申请资源的进程号请求数组(即所需要的资源)<=?进程阻塞是请求向量与可利用资源量比较<=?否是拟分配执行安全性算法安全?新状态稳定,资源实际分配撤销分配否是四.设计思想在实现过程中,首先是将请求资源与need和available相比较,来确定请求的资

4、源是否超过现有的资源,或者请求了本身不需要的那么多的资源,如果是的话,就终止,打印出“进程阻塞”,不是的话,接着进行,首先试分配相关资源————即将进程请求的资源给该进程,并且修改相关的参数,包括need,available,acclation,然后,利用一个while循环,进行对各个进程的安全状态检查,检查的主要方式就是,如果available能满足该进程的need,就分配,然后修改available的相关参数,不能的话,就进行下一个进程的检测,如果都不能满足的话,就结束,输出“进程阻塞”,以上就是整个程序设计的主要思想。相面附上程

5、序,以及程序的运行截图:五.程序清单#include#definen5//进程个数#definem3//资源种类voidmain(){/*分配矩阵Allocation[i](4)需求矩阵Need[i](5)请求矩阵Request[i]*/intAllocation[n][m]={{2,1,2},{4,0,2},{3,0,5},{2,0,4},{3,1,4}};intNeed[n][m]={{3,4,7},{1,3,4},{0,0,3},{2,2,1},{1,1,0}};intReqeust[m];intAvailab

6、le[3]={2,3,3};intp[n]={0,0,0,0,0};//intk,h;inta,i,j,x=5,y=0,k=0;printf("请输入请求的序号!");scanf("%d",&a);a=a-1;printf("请输入资源要求!");for(i=0;iNeed[a][i]

7、

8、Reqeust[i]>Available[i]){printf("该进程阻塞1!");return;}//print

9、f("检测无误,准备试分配!");////试分配for(i=0;i

10、i]==0){for(j=0;jAvailable[j])break;if(j==m){//printf("%d%d",x,j);for(j=0;j

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

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

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