美文网首页
银行家算法(并没有注释

银行家算法(并没有注释

作者: evilgiven | 来源:发表于2017-06-22 17:28 被阅读0次
#include <iostream>
 
const int MAXM = 1;
const int MAXN = 100;
 
using namespace std;
 
int Resource[MAXM], Available[MAXM];
int Claim[MAXN][MAXM], Allocation[MAXN][MAXM];
int n;
 
int Need[MAXN][MAXM];
bool Finish[MAXN];
int finished;
 
bool IsAvailable(const int thisNeed[], const int thisAvailable[]){
    for(int i = 0; i < MAXM; i++){
        if(thisNeed[i] > thisAvailable[i]) return false;
    }
    return true;
}
 
void LineAdd(int LineA[], int LineB[]){
    for(int i = 0; i < MAXM; i++){
        LineA[i] += LineB[i];
    }
}
 
int main()
{
    cout << "Please input " << MAXM << " integers of Resource:" << endl;
    for(int i = 0; i < MAXM; i++) cin >> Resource[i];
    cout << "Please input " << MAXM << " integers of Available:" << endl;
    for(int i = 0; i < MAXM; i++) cin >> Available[i];
    cout << "Please input the number of process:" << endl;
    cin >> n;
    for(int i = 1; i <= n; i++){
        cout << "Please input " << MAXM << " integers of Claim[" << i << "]:" << endl;
        for(int j = 0; j < MAXM; j++) cin >> Claim[i][j];
    }
    for(int i = 1; i <= n; i++){
        cout << "Please input " << MAXM << " integers of Allocation[" << i << "]:" << endl;
        for(int j = 0; j < MAXM; j++) cin >> Allocation[i][j];
    }
    cout << "Running..." << endl;
    for(int i = 1; i <= n; i++){
        for(int j = 0; j < MAXM; j++){
            Need[i][j] = Claim[i][j] - Allocation[i][j];
        }
        Finish[i] = false;
    }
    finished = 0;
    for(int times = 0; times < n; times++){
        for(int i = 1; i <= n; i++){
            if(!Finish[i]){
                if(IsAvailable(Need[i], Available)){
                    Finish[i] = true;
                    finished++;
                    LineAdd(Available, Claim[i]);
                }
            }
        }
    }
    if(finished == n){
        cout << "True" << endl;
    }else{
        cout << "False" << endl;
    }
    return 0;
}

相关文章

  • 银行家算法(并没有注释

  • 银行家算法

    银行家算法是一种预防死锁的算法。具体算法步骤可以参考百度百科:银行家算法 例子:某系统有A、B、C、D , 4类...

  • 第二章 数据查找与资源分配算法——银行家算法

    2.4 银行家算法 银行家算法时一种资源分配算法,在操作系统理论中它是一个避免死锁的算法,是以银行借贷系统的分配策...

  • 银行家算法

    银行家算法是避免进程死锁的方法之一。那什么是银行家算法呢? 银行家,他们想的是我把钱贷出去,能不能收的回来,能不能...

  • 死锁的预防算法

    银行家算法银行家算法是一种最有代表性的避免[死锁]的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源...

  • 银行家实现C++算法网络爬虫无死锁调度!

    一、银行家算法与死锁 银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在...

  • 第三章 调度算法和死锁

    银行家算法 当一个进程申请使用资源的时候,银行家算法通过先试探分配给该进程资源,然后通过安全性算法判断分配后的系统...

  • 银行家算法

    看一下 你就会了 银行家算法

  • 多资源银行卡算法

    可以把银行家算法进行推广以处理多个资源。图6-12说明了多个资源的银行家算法如何工作。 在图6-12中我们看到两个...

  • 【随笔】代码注释风格

    注释风格影响代码可读性 冗余的注释就等于涂鸦 对比 最佳实践 注释不应当用于说明算法注释只应当用于说明算法的某一个...

网友评论

      本文标题:银行家算法(并没有注释

      本文链接:https://www.haomeiwen.com/subject/rgbfcxtx.html