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

课程设计-死锁的避免-C++

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

课程设计-死锁的避免-C++

 在此之间你需要创建三个文件Available_list.txt,Max_list.txt,Allocation_list.txt,把三个文件和程序放在同一个文件夹里,三个文件编写格式如下

available.txt

3(代表资源种类,括号里面的文字不用写,只是解释)

3 9 7(各种资源数量)

Max_list.txt

4(进程数量)

2 3 1

1 1 1

1 3 4

1 2 1

Allocation._list.txt

0 0 0 

0 0 1

1 0 1

1 0 1

像这样

 

#include 
#include 
#include //Windows内核API,图形界面接口,图形设备函数等重要的功能 
 
#define MAX_PROCESS 32              //最大进程数
#define MAX_RESOURCE 64              //最大资源类别
 
int PROCESS_NUM;              //实际总进程数
int RESOURCE_NUM;               //实际资源类别数
int Available[MAX_RESOURCE];                 //可利用资源向量
int Max[MAX_PROCESS][MAX_RESOURCE];          //最大需求矩阵
int Allocation[MAX_PROCESS][MAX_RESOURCE];   //分配矩阵
int Need[MAX_PROCESS][MAX_RESOURCE];         //需求矩阵
 
int Request_PROCESS;                       //发出请求的进程
int Request_RESOURCE_NUMBER[MAX_RESOURCE];     //请求资源数????? 
 
void Read_Available_list();      //读入可用资源Available
void Read_Max_list();           //读入最大需求矩阵Max
void Read_Allocation_list();    //读入已分配矩阵Allocation
void PrintInfo();               //打印各数据结构信息
void Read_Request();			//输入请求向量
void Allocate_Source();         //开始正式分配资源(修改Allocation_list.txt)
void Recover_TryAllocate();     //恢复试分配前状态
int Test_Safty();               //安全性检测
void RunBanker();               //执行银行家算法
using namespace std;
 
//读入可用资源Available
void Read_Available_list()      
{
	FILE *fp;
	if((fp=fopen("Available_list.txt","r"))==NULL)
	{ 
		cout<<"错误,文件打不开,请检查文件名"<Request_PROCESS;
 
	cout<<"输入请求资源的数目:按照这样的格式输入 x x x:";
	for(int i=0; i>Request_RESOURCE_NUMBER[i];
}
 

 
 
//安全性检测
//返回值:0:未通过安全性测试; 1:通过安全性测试
int Test_Safty()
{                        
	//请完成安全性检测算法的编程
	cout<<'n'<<" 进入安全性检测	!"<Work[j])
					HasResource=false;
				if(HasResource)
				{
					for(j=0;j";
	}
	cout<<'n'<<" 已通过安全性测试	!"<Need[Request_PROCESS][i])
		{
			cout<<"n第"<Available[i])
		{
			cout<<"n第"<>c;
		if(c=='n')
			break;
		cout< 

一年一度的课程设计,却不知道根本原理,友情提醒各位用户,当我们输入数值时,如果我们没有出现安全序列,说明发生了死锁。

如果有问题,欢迎指正,有问题请教也可以,还有本代码只是借鉴别人的,并非本人一瘦创作,只是在原有的基础上进行了改编。

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

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

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