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

资源简介

利用C语言实现操作系统中的银行家算法(话说说的这么清楚还需要多少描述吗?额,我这个是老师亲自验收通过的!)

资源截图

代码片段和文件信息

#include 
using namespace std;
#define maxprocess 30                        /*最大进程数*/
#define maxresource 80                        /*最大资源数*/
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();
void main()
{
    Init();
    Safe();
    Bank();
}
void Init()                /*初始化算法*/
{
    int ij;
cout<<“**********************************银行家算法**********************************“<    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<<“请输入要申请资源的进程号(请从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<<“您输入的请求数超过系统有的资源数!请重新输入!“<   

评论

共有 条评论