银行家算法C++源程序及流程图 第2页

银行家算法C++源程序及流程图 第2页
   }
    cout<<"输入各个资源现有数目:"<<endl;
    for(i=0;i<N;i++)
    {
        cin>>Available[i];
    }
}
void request()        /*银行家算法*/
{
    int i,ID;
    char again;
    while(1)
    {
        cout<<"输入要申请资源的进程号"<<endl;
        cin>>ID;
        cout<<"输入进程所请求的各资源的数量:"<<endl;
        for(i=0;i<N;i++)
        {
            cin>>Request[ID][i];
        }
        for(i=0;i<N;i++)
        {
            if(Request[ID][i]>Need[ID][i])
            {
                cout<<"输入的请求资源数超过所需的资源最大数!请重新输入!"<<endl;
                continue;
            }
            if(Request[ID][i]>Available[i])
            {
                cout<<"尚无足够资源!请重新输入!"<<endl;
                continue;
            }
        }
        for(i=0;i<N;i++)
        {
            Available[i]-=Request[ID][i];
            Allocation[ID][i]+=Request[ID][i];
            Need[ID][i]-=Request[ID][i];
        }
        if(Safe())
        {
            cout<<"同意分配请求!"<<endl;
        }
        else
        {
           cout<<"请求被拒绝!"<<endl;
            for(i=0;i<N;i++)
            {
                Available[i]+=Request[ID][i];
                Allocation[ID][i]-=Request[ID][i];
                Need[ID][i]+=Request[ID][i];
            }
        }
        for(i=0;i<M;i++)
        {
            Finish[i]=0;
        }
        cout<<"再次请求分配按y/Y,否请按其它键."<<endl;
        cin>>again;
        if(again=='y'||again=='Y')
        {
            continue;
        }
        break;
        }
}
bool Safe()                                    /*安全性算法*/
{
    int i,j,k,l=0;
    int Work[J];                    /*工作数组*/
    for(i=0;i<N;i++)
    Work[i]=Available[i];
    for(i=0;i<M;i++)
    {
        Finish[i]=0;
    }
    for(i=0;i<M;i++)
    {   
        if(Finish[i]==1)
        {
            continue;
        }
        else
        {
            for(j=0;j<N;j++)
            {
                if(Need[i][j]>Work[j])
                {
                    break;
                }
            }
       
1. 测试数据与实验结果

上一页  [1] [2] [3] [4] 下一页

  • 上一篇文章:
  • 下一篇文章:
  • Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有