银行家算法(操作系统).pdf

银行家算法(操作系统).pdf

ID:58939834

大小:206.70 KB

页数:15页

时间:2020-09-17

银行家算法(操作系统).pdf_第1页
银行家算法(操作系统).pdf_第2页
银行家算法(操作系统).pdf_第3页
银行家算法(操作系统).pdf_第4页
银行家算法(操作系统).pdf_第5页
资源描述:

《银行家算法(操作系统).pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《操作系统》实验报告题目:银行家算法班级:网络工程姓名:朱锦涛学号:E31314037'.一、实验目的用代码实现银行家算法,了解通过银行家算法避免死锁的思想。通过代码的具体实现,加深对算法的核心的理解。二、实验原理我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进

2、程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。三、实验内容源程序:#include#include'.#includetypedefstructProcedure{intMax[3];//满足此进程需要三类资源的数量intAllocation[3];//系统已经为该进程分配的资源情况intNeed[3];//该进程还需要资源数量intf

3、lag;//标志位,执行完之前为0,执行完之后为1charp;//在执行完之后,给出相应的编号,如P1,P2structProcedure*pNext;}Pro,*PNODE;//如果系统资源足够多的话,那么所有的安全序列的数量就会是5*4*3*2*1=120个PNODEcreate_list(int&len);voidtraverse_list(PNODEpHead);intcnt_exe(PNODEpHead,int*system,inti);//计算目前系统能够执行的进程数'.intwork(PNODEpHead,int*system);intm

4、ain(){intok;intlen;srand(time(0));intsystem[3]={rand()%5+10,rand()%5+2,rand()%5+5};printf("系统中可用的各类资源数分别为:%d%d%d",system[0],system[1],system[2]);Pro*pHead=create_list(len);traverse_list(pHead);intcnt=cnt_exe(pHead,system,3);if(cnt==0){printf("对不起,不存在安全序列");return0;'.}else{in

5、tok=work(pHead,system);if(ok==len)printf("恭喜!存在安全序列!");elseprintf("很抱歉!不存在安全序列!");}return0;}PNODEcreate_list(int&len){inti,j;'.charc='A';//用来临时存放用户输入的结点的值//分配了一个不存放有效数据的头结点PNODEpHead=(PNODE)malloc(sizeof(Pro));if(NULL==pHead){printf("分配失败,程序终止!");exit(-1);}PNODEpTail=pHead

6、;pTail->pNext=NULL;printf("请输入您需要生成的链表节点的个数:");scanf("%d",&len);for(i=0;iMax[j]=rand()%5+4;pNew->Allocation[j]=rand()%5;pNew->Need[j]=pNew->Max[j]-pNew->Alloca

7、tion[j];}pNew->flag=0;pNew->p=c;pTail->pNext=pNew;pNew->pNext=NULL;'.pTail=pNew;c++;}returnpHead;}voidtraverse_list(PNODEpHead){PNODEp=pHead->pNext;inti=1;while(NULL!=p){printf("第%d个资源的需要资源总数各为:%d%d%d",i,p->Max[0],p->Max[1],p->Max[2]);'.printf("");printf("第%d个资源已分配资源总数各为:%d%d%

8、d",i,p->Allocation[0],p->Allocation[1],p->Alloc

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

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

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