




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统原理实验报告实验二 银行家算法实验专业:计算机科学与技术学号:030840204姓名:简郸实验日期:2010-5-22一、实验目的通过银行家算法理解操作系统安全状态和不安全状态。二、实验要求根据课本第 204 页在 T0 时刻系统分配的资源,用银行家算法判断系统是否处于安全序列,它的安全序列怎样。三、实验方法内容1. 算法设计思路我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。2. 算法流程图3. 主要的常量变量n:系统中进程的总数m:资源类总数Available: ARRAY1m of integer;Max: ARRAY1n,1m of integer;Allocation: ARRAY1n,1m of integer;Need: ARRAY1n,1m of integer;Request: ARRAY1n,1m of integer;符号说明:Available 可用剩余资源Max 最大需求Allocation 已分配资源Need 需求资源Request 请求资源4. 主要模块当进程 pi 提出资源申请时,系统执行下列步骤:(“=”为赋值符号,“=” 为等号 )step(1 )若 Requestnext=alloc2-next=NULL;scanf(“%d“,status+;elsealloc2=(struct allocation *)malloc(alloclen);scanf(“%d,%d“,if(status=1)allochead-next=alloc2;status+;alloc1-next=alloc2;alloc1=alloc2;alloc2-next=NULL;status=0;printf(“请输入最大需求矩阵:n“);for(i=0;inext=maxium2-next=NULL;scanf(“%d“,status+;elsemaxium2=(struct max *)malloc(maxlen);scanf(“%d,%d“,if(status=1)maxhead-next=maxium2;status+;maxium1-next=maxium2;maxium1=maxium2;maxium2-next=NULL;status=0;printf(“请输入现时系统剩余的资源矩阵:n“);for (j=0;jnext=available2-next=NULL;work1-next=work2-next=NULL;scanf(“%d“,work1-value=available1-value;status+;elseavailable2=(struct available*)malloc(avalen);work2=(struct available*)malloc(avalen);scanf(“%d,%d“,work2-value=available2-value;if(status=1)avahead-next=available2;workhead-next=work2;status+;available1-next=available2;available1=available2;work1-next=work2;work1=work2;available2-next=NULL;work2-next=NULL;status=0;alloctemp=allochead;maxtemp=maxhead;for(i=0;inext=need2-next=NULL;need1-value=maxtemp-value-alloctemp-value;status+;elseneed2=(struct need *)malloc(needlen);need2-value=(maxtemp-value)-(alloctemp-value);if(status=1)needhead-next=need2;status+;need1-next=need2;need1=need2;maxtemp=maxtemp-next;alloctemp=alloctemp-next;need2-next=NULL;status=0;for(i=0;inext=finish2-next=NULL;finish1-stat=0;status+;elsefinish2=(struct finish*)malloc(finilen);finish2-stat=0;if(status=1)finihead-next=finish2;status+;finish1-next=finish2;finish1=finish2;finish2-next=NULL; /*Initialization compleated*/status=0;processtest=0;for(temp=0;tempstat=0)for(j=0;jnext,worktemp=worktemp-next)if(needtemp-valuevalue)processtest+;if(processtest=colum)for(j=0;jvalue+=alloctemp-value;worktemp1=worktemp1-next;alloctemp=alloctemp-next;if(status=0)pathhead=path1=path2=(struct path*)malloc(pathlen);path1-next=path2-next=NULL;path1-value=i;status+;elsepath2=(struct path*)malloc(pathlen);path2-value=i;if(status=1)pathhead-next=path2;status+;path1-next=path2;path1=path2;finishtemp-stat=1;elsefor(t=0;tnext;finishtemp-stat=0;elsefor(t=0;tnext;alloctemp=alloctemp-next;processtest=0;worktemp=workhead;finishtemp=finishtemp-next;path2-next=NULL;finishtemp=finihead;for(temp=0;tempstat=0)printf(“n 系统处于非安全状态!n“);exit(0);finishtemp=finishtemp-next;printf(“n 系统处于安全状态.n“);printf(“n 安全序列为: n“);doprintf(“p%d “,pathhead-value);while(pathhe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一脉心香爱亦美丽2000字15篇范文
- 秋天你好初二作文7篇范文
- 农村电商与农产品进城合作框架合同
- 网络平台项目合作诚意金缴纳及解约合同
- 生态农业示范区场地租赁与绿色农产品生产合同
- 寓言故事中的道理:狼和小羊教学教案
- 智能交通停车解决方案服务协议
- 2025年城市智能照明系统升级项目照明验收检测报告
- 2025年中国电动升降货物梯行业市场规模及投资前景预测分析报告
- 消防救援站培训视频课件
- 猪睾丸支持细胞外泌体摄取能力的多因素解析与机制探究
- 2024年10月高等教育自学考试《00034社会学概论》试题
- 2025岐黄天使考试试题及答案
- 理论联系实际阐述文化在社会发展中具有什么样的作用?参考答案四
- 新能源公交车安全操作
- 2025年陕西锌业有限公司招聘笔试参考题库含答案解析
- 2024年广西高考化学试卷真题(含答案解析)
- 网吧企业章程范本
- 【图文】SEW变频器设置参数说明
- 振弦式锚索测力计HC
- 香港离婚共同申请书
评论
0/150
提交评论