教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

天津科技大学操作系统实验1-5(8)

来源:网络收集 时间:2026-08-26
导读: ? Finish[i]∶=true; ? go to step 2; (4)如果所有进程的Finish[i]=true都满足, 则表示系统处于安全状态;否则,系统处于不安全状态。 【实验步骤】 参考实验步骤如下: (1)参考图1-1所示流程图编写安

? Finish[i]∶=true; ? go to step 2;

(4)如果所有进程的Finish[i]=true都满足, 则表示系统处于安全状态;否则,系统处于不安全状态。

【实验步骤】 参考实验步骤如下:

(1)参考图1-1所示流程图编写安全性算法。 开始 初始化Work和Finish 存在Finish[i] =false &&Need[i][j]<= Available[j] Y N Finish[i]=true,Work[j]=Work[j]+ Allocation[i][j] N 所有进程都找完了? Y N 所有finish都为true? Y 输出系统不安全 输出安全序列 图1-1 安全性算法流程图

(2)编写统一的输出格式。 每次提出申请之后输出申请成功与否的结果。如果成功还需要输出变化前后的各种数据,并且输出安全序列。

(3)参考图1-2所示流程图编写银行家算法。 (4)编写主函数来循环调用银行家算法。

【实验思考】

(1)在编程中遇到了哪些问题?你是如何解决的?

(2)在安全性算法中,为什么不用变量Available,而又定义一个临时变量work?

22

开始 输入初始参数(资 源分配及请求情 出错返回: Y Requesti[j]> Need[i][j] return(error) N 出错返回:(进程阻Y Requesti[j]> Available[j] 塞) return(error) N 假定分配: Available[j] = Available[j] – Requesti[j] Allocation[i][j]= Allocation[i][j] + Requesti[j] Need[i][j] = Need[i][j] – Requesti[j] 是 否 假定分配之后,系统安全 吗? 申请成功。输出各种数申请失败。 据的变化 以上分配作废,恢复原来的分配状态: Available[j] = Available[j] + Requesti[j] Allocation[i][j]= Allocation[i][j]-Requesti[j] Need[i][j] = Need[i][j]+Requesti[j] 结束 图1-2银行家算法流程图

【参考代码】

23

部分参考代码如下:

#include #include

#define M 3 //资源的种类数 #define N 5 //进程的个数

void output(int iMax[N][M],int iAllocation[N][M],int iNeed[N][M],int iAvailable[M],char cName[N]); //统一的输出格式

bool safety(int iAllocation[N][M],int iNeed[N][M],int iAvailable[M],char cName[N]);

bool banker(int iAllocation[N][M],int iNeed[N][M],int iAvailable[M],char cName[N]); void main() {

int i,j;

//当前可用每类资源的资源数 int iAvailable[M]={3,3,2};

//系统中N个进程中的每一个进程对M类资源的最大需求

int iMax[N][M]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}}; //iNeed[N][M]每一个进程尚需的各类资源数

天津科技大学操作系统实验1-5(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/614421.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)