资源简介
用递归方式实现将所有的安全序列按序输出的银行家算法;进程数目和资源种类用宏定义控制。
代码片段和文件信息
# include
# define sourcekind 3
# define processnumber 4
struct processdefine
{
int max[sourcekind];
int allocation[sourcekind];
int need[sourcekind];
};
struct processdefine process[processnumber];
int available[sourcekind];
int sequence[processnumber];
int work[sourcekind];
int request[sourcekind];
int t;
void f(int j)
{
if(j!=processnumber)
{
for(int i=0;i {
sequence[j]=i;
if(j==0)
f((j+1));
else
{
int kl=0;
for(k=0;k {
if(sequence[k]==sequence[j])
{l=1;break;}
}
if(l==0)
f((j+1));
}
}
}
else
{
for(int u=0;u {
work[u]=available[u];
}
int m;
for(m=0;m {
int x;
for(x=0;x {
if(work[x] break;
}
if(x!=sourcekind)
break;
else
for(int u=0;u {
work[u]=work[u]+process[sequence[m]].allocation[u];
}
}
if(m==processnumber)
{
++t;
cout<<“满足要求的第“< for(int v=0;v {
cout<<(sequence[v]+1)<<“ “;
}
cout<
}
}
}
int safetycheck()
{
t=0;
f(0);
if(t==0)
return 0;
else
return 1;
}
void shenqing(int l)
{
int prw;
cout<<“请依次输入申请的各类资源数目:“< for(p=0;p {
cin>>request[p];
}
for(p=0;p {
if(request[p]>process[(l-1)].need[p])
{
cout<<“出错!进程“< break;
}
}
for(r=0;r {
if(request[r]>availa
相关资源
- 银行家算法分配资源的模拟实现(m
- C语言实现的银行家算法 做了界面
- 操作系统课程设计(银行家算法)附
- 银行家算法c语言实现+实验报告
- 银行家算法 mfc 含源代码 界面 操作系
- 银行家算法 死锁避免 可视化 MFC
- 基于C++的银行家算法模拟实现
- 操作系统——银行家算法
- 银行家算法C++实现穷举所有安全序列
- C++死锁检测解除算法
- 操作系统C语言实现银行家算法,键盘
- 操作系统课程设计银行家算法C语言
- 银行家算法C实现
- 操作系统设备管理模拟 银行家算法
- 银行家算法c++源代码
- 银行家算法编程--没有错误的
- 银行家算法 c++实现代码+报告
- c/c++实现银行家算法模拟
- 银行家算法实现
- 计算机操作系统实验报告,C语言实现
- 银行家算法模拟实现C++版
- 银行家算法c语言
- 银行家算法 MFC实现
- 银行家算法-----一个n个并发进程共享
- 银行家算法源程序包含C语言+C++两种代
- 操作系统银行家算法源码
- 银行家算法C语言实现源文件
- 银行家算法c++工程项目文件
- 用C语言实现银行家算法
- 操作系统 银行家算法 C++
评论
共有 条评论