栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

操作系统--银行家算法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

操作系统--银行家算法

一、实验目的

  1. 了解什么是操作系统的安全状态和不安全状态;
  2. 了解如何避免系统死锁。
  3. 理解银行家算法是一种最有代表性的避免死锁的算法,掌握其实现原理及实现过程。

二、实验内容 

  根据银行家算法的基本思想,编写和调试一个实现动态资源分配的模拟程序,并能够有效的避免死锁发生。

三、实验结果

可在此修改进程数和资源数

 

  1. 运行程序分别输入资源的总数量、资源的最大需求、进程获得的资源数量

之后会出现转台表,然后判断初始转台是否为安全

不安全状态:

 

安全状态:

 

  1. 如果为不安全状态,就会直接出现状态表程序结束。

  如果为安全状态,就会出现 输入请求进程id 输入请求资源数 借此我们就可以调用银行家算法检查是否能够分配?

 

 

 

 

 详细代码

#include  
#include  
#include  
#include 
#define M 3 //资源数 
#define N 5  //进程数 
int Resource[M];    //资源 
int Max[N][M];      //资源的最大需求量
int Allocation[N][M];  //
int Need[N][M];       //资源需求量 
int Available[M];     //资源剩余量 
int Work[M];      //存放系统可提供资源量 
int Finish[N];   //标记系统是否有足够的资源分配给各个进程
int List[N];    //存放安全序列的下标序列 
 
 
 //创建初始状态
void initial()   
{
    int i,j;
    printf("输入M种资源的总数量(Resource):n");
    for(i=0;i=0 && reqid 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/982751.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号