• 大小: 5KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: C/C++
  • 标签:

资源简介

编制银行家算法通用程序,并检测思考题中所给状态的安全性。

资源截图

代码片段和文件信息

#include 
using namespace std;
#define MAXPROCESS 50                        /*最大进程数*/
#define MAXRESOURCE 100                        /*最大资源数*/
int AVAILABLE[MAXRESOURCE];                    /*可用资源数组*/
int MAX[MAXPROCESS][MAXRESOURCE];            /*最大需求矩阵*/
int ALLOCATION[MAXPROCESS][MAXRESOURCE];    /*分配矩阵*/
int NEED[MAXPROCESS][MAXRESOURCE];            /*需求矩阵*/
int REQUEST[MAXPROCESS][MAXRESOURCE];        /*进程需要资源数*/
bool FINISH[MAXPROCESS];                        /*系统是否有足够的资源分配*/
int p[MAXPROCESS];                             /*记录序列*/
int mn;                                    /*m个进程n个资源*/

void Init();
bool Safe();
void Bank();
int main()
{int chose;
    Init();
    Safe();
    Bank();
}

void Init()                /*初始化算法*/
{
    int ij;
    cout<<“请输入进程的数目:“;
    cin>>m;
    cout<<“请输入资源的种类:“;
    cin>>n;
    cout<<“请输入每个进程最多所需的各资源数按照“<    for(i=0;i    for(j=0;j    cin>>MAX[i][j];
    cout<<“请输入每个进程已分配的各资源数也按照“<    for(i=0;i    {
        for(j=0;j        {
            cin>>ALLOCATION[i][j];
            NEED[i][j]=MAX[i][j]-ALLOCATION[i][j];
            if(NEED[i][j]<0)
            {
                cout<<“您输入的第“<                j--;
                continue;
            }
        }
    }
    cout<<“请输入各个资源现有的数目:“<    for(i=0;i    {
        cin>>AVAILABLE[i];
    }
}

void Bank()                /*银行家算法*/
{
    int icusneed;
    char again;
    while(1)
    {
        cout<<“请输入要申请资源的进程号(注:第1个进程号为0依次类推)“<        cin>>cusneed;
        cout<<“请输入进程所请求的各资源的数量“<        for(i=0;i        {
            cin>>REQUEST[cusneed][i];
        }
        for(i=0;i        {
            if(REQUEST[cusneed][i]>NEED[cusneed][i])
            {
                cout<<“您输入的请求数超过进程的需求量!请重新输入!“<                continue;
            }
            if(REQUEST[cusneed][i]>AVAILABLE[i])
            {
                cout<<“您输入的请求数超过系统有的资源数!请重新输入!“<                continue;
     

评论

共有 条评论

相关资源