问题标签 [bankers-algorithm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 银行家的算法 - 如果工作少于需要,我可以将资源分配给进程吗
我正在从这里阅读有关银行家算法的信息,我知道检查我们是否可以将可用资源分配给进程的一个条件是检查是否Work > Need ,我想知道如果Work < Need but Work + Allocation我们可以这样做> 需要。
例如,有R1、R2、R3三个资源,我们已经分配了P1
(0,0,4),它还需要 (2,3,1) 才能完成它的工作。现在我们有 (2,3,0) 资源可用。将这些资源提供给P1
并确保没有死锁是否安全?
c - 银行家算法:无法打印
我用 C 语言编写了银行家算法并计算了需求矩阵和安全序列。但我不知道为什么我的代码没有打印任何东西。
这是我的代码:
我无法确定问题出在哪里。该代码符合并没有显示错误,但不打印任何内容。
修改后的代码将是一个很大的帮助。
operating-system - 银行家算法中的过程需求是否会变成负数?
我正在研究银行家的算法问题。对于一个进程,分配为 (3, 0, 2),其最大值为 (0, 0, 2)。因此,为了计算流程的需求,我们从最大值中减去分配。但是在这里,它变成了负数,即需要变成了(-3, 0, 0)。
这可能吗?对我来说,这似乎是这个算法的一个特例。
如果我不介意否定并应用算法,我仍然会获得安全状态。这个对吗?谁能给我一个正当的理由。谢谢。注意安全!
c - 银行家资源请求算法在c中的实现
下面是资源请求的代码。我的安全算法运行良好,但是当我要求额外的资源时,它给出了错误情况(请求>需要)。但是当我实际这样做时,我找不到任何错误。
这是我的代码
上述代码的输出:
需要的输出:
我在哪里可以进行更改以获得上述输出。
c++ - std::ifstream.get 是否捕获包括 \n 在内的所有内容?
我正在研究一个解决银行家算法的项目。我从定义可用数组、分配资源矩阵和最大资源的文件中读取了输入。输入文件的结构如下:
我在矩阵中读取的代码是:
我有循环在读取矩阵后输出它们的值。输出是
它在读取分配矩阵后停止,甚至没有正确读取。我假设我使用 std::ifstream.get() 错误,但我不明白如何。
我发现如果我将所有数据放在 1 行中,它会正确读取分配矩阵,但我的程序在尝试读取最大矩阵时仍然停止(即使我使用了与分配矩阵相同的代码)最大读数)。