您所在位置: 网站首页 / 操作系统银行家算法实验报告.docx / 文档详情
操作系统银行家算法实验报告.docx 立即下载
2025-08-27
约1.3万字
约22页
0
19KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

操作系统银行家算法实验报告.docx

操作系统银行家算法实验报告.docx

预览

免费试读已结束,剩余 17 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

操作系统银行家算法实验报告

第一篇:操作系统银行家算法实验报告实验四死锁一、实验目的当系统的总资源数m小于或等于所有进程对对资源的最大需求时,就可能产生死锁。死锁会引起计算机系统的瘫痪。银行家算法是在实现资源分配时避免死锁的一个著名算法,该算法是在能确保系统处于安全状态时才把资源分配给申请者。通过本实验使学生能进一步理解死锁的概念,并能选择一个算法来避免死锁。二、实验题目系统中有m个同类资源被n个进程共享,每个进程对资源的最大需求数分别为S1,S2,…,Sn,且Max(Si)三、数据结构主要数据结构:Structaa{voidPrint();//用于打印输出表格的函数voidInput();//用于输入的函数voidtryfenpei(inti);//试分配函数voidrefenpei(inti);//恢复数据函数voidchecksafe(ints);//安全检测函数};四、银行家算法的流程图开始初始化资源类数c=3,进程数t=5初始化Available[c],Max[t][c],Allocation[t][c],Need[t][c],Request[c]输入进程数iIntf=0f五、源代码#include#include“stdio.h”constunsignedshortc=3;//资源类数constunsignedshortt=5;//进程数voidPrint();//用于打印输出表格的函数voidInput();//用于输入的函数voidtryfenpei(inti);//试分配函数voidrefenpei(inti);//恢复数据函数voidchecksafe(ints);//安全检测函数//定义初始化数组intAvailable[c],Max[t][c],Allocation[t][c],Need[t][c],Request[c];intin;//用户选择的进程号intmain(intargc,char*argv[]){inti;charch='Y';cout>in){if(in4){cout>Request[i]){if(Request[i]Need[in][i])coutAvailable[i])coutcoutcout>ch);return0;}voidPrint(){inti,j;coutvoidInput(){for(intj=0;j>Available[j]){if(Available[j]{for(intm=0;m>Max[l][m]){if(Max[l][m]>Allocation[l][m])if(Allocation[l][m]voidtryfenpei(inti){for(intf=0;f//安全检测函数voidchecksafe(ints){intWork,flag,temp[t],i,j,l=0,k=0;boolFinish[t];for(i=0;i}if(l==5)//一共有三类资源ABC,一条进程下面的安全性检测只检测了A类。如果A类通过了,那么还要判断B类,C类。否则不用{for(i=0;i}i=s;//s传递进来赋给i,s是用户输入的进程号(有主函数里的in传递进来)while(iif(Finish[i]==false&&Need[i][j]”;cout六、执行结果:七、实验总结通过本次实验了解到用银行家算法来预防死锁是可靠的,但也是非常保守的,因为它限制了进程对资源的存取,从而降低了进程的并发运行程度。死锁检测并不限制进程对资源的申请,只要有,就分配,但这也可能造成死锁。但由于死锁并不是经常发生的,故大大提高了系统运行的效率。总之,通过本实验,使我进一步加深理解和掌握银行家算法。第二篇:东南大学操作系统实验报告--银行家算法操作系统实验三:银行家算法的实现一、基本信息:a)实验题目:银行家算法的实现b)完成人姓名:韩璐璐c)学号:71114115d)报告日期:2016.5.27二、实验目的通过实验,加深对多实例资源分配系统中死锁避免方法——银行家算法的理解,掌握Windows环境下银行家算法的实现方法,同时巩固利用WindowsAPI进行共享数据互斥访问和多线程编程的方法。三、实验内容1.在Windows操作系统上,利用Win32API编写多线程应用程序实现银行家算法。2.创建n个线程来申请或释放资源,只有保证系统安全,才会批准资源申请。3.通过Win32API提供的信号量机制,实现共享数据的并发访问。四、程序运行时的初值和运行结果(系统截图)五、源程序并附上注释#include#include#include#includeusingnamespacestd;intr[3]={3,3,2};//系统拥有的资源intr0=0,r1=0,r2=0;//记录申请资源classpc
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

操作系统银行家算法实验报告

文档大小:19KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用