操作系统银行家算法(避免死锁)实验报告_操作系统死锁实验报告

2020-02-28 其他范文 下载本文

操作系统银行家算法(避免死锁)实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“操作系统死锁实验报告”。

操作系统实验:银行家算法

姓名:李天玮

班级:软工1101 实验内容:

在windows系统中实现银行家算法程序。

学号:201126630117 实现银行家算法所用的数据结构:

假设有5个进程3类资源,则有如下数据结构: 1.MAX[5,3] 5个进程对3类资源的最大需求量。2.AVAILABLE[3]系统可用资源数。

3.ALLOCATION[5,3]5个进程已经得到3类资源的资源量。4.NEED[5,3]5个进程还需要3类资源的资源量。

银行家算法:

设进程1提出请求Request[N],则银行家算法按如下规则进行判断。(1)如果Request[N]

AVALIABLE=AVALIABLE-REQUEST ALLOCATION=ALLOCATION+REQUEST NEED=NEED-REQUEST(4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。

安全性检查:

(1)设置两个工作向量WORK=AVAILABLE;FINISH[M]=FALSE.(2)从晋城集合中找到一个满足下述条件的进程,FINISH[i]=FALSE NEED

(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。

WORK=WORK+ALLOCATION FINISH[i]=TRUE GOTO(2)

(4)如所有进程FINISH[M]=TRUE,则表示安全;否则系统不安全。

1.用init()函数对于数据的初始化

关键代码:

#define M 5 #define N 3

void init(){

cout

} cout

{ } cin>>AVAILABLE[j];for(int j=0;j>MAX[i][j];} //cout

cout

for(int i=0;i

} cout

} for(int j=0;j>NEED[i][j];} //cout>ALLOCATION[i][j];} //cout

}// Stack around the variable 'AVAILABLE' was corrupted.显示数据详细信息

进行测试 输入一号进程号,并给需要申请资源设定为{1,0,2}

检验错误输入时候的报错信息

检验当再次申请0号资源并申请资源数目为{0,2,0}时,系统提示系统不安全申请不成功。

每当验证申请成功后会进行的修改操作:

if(flag=='Y'||flag=='y')//进?行D数簓据Y修T改?

{ changdata(i);

}

} if(chkerr(0)){

} else showdata();rstordata(i);showdata();else showdata();cout>flag;退?出?演Y示?";

《操作系统银行家算法(避免死锁)实验报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
操作系统银行家算法(避免死锁)实验报告
点击下载文档
相关专题 操作系统死锁实验报告 实验报告 死锁 银行家 操作系统死锁实验报告 实验报告 死锁 银行家
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文