我正在研究一个解决银行家算法的项目。 我从定义可用数组、分配资源矩阵和最大资源的文件中读取了输入。 输入文件的结构如下: 我在矩阵中读取的代码是: 我有循环 output 读取矩阵后的值。 output 是 它在读取分配矩阵后停止,甚至没有正确读取。 我假设我使用 std::ifstream.g ...
我正在研究一个解决银行家算法的项目。 我从定义可用数组、分配资源矩阵和最大资源的文件中读取了输入。 输入文件的结构如下: 我在矩阵中读取的代码是: 我有循环 output 读取矩阵后的值。 output 是 它在读取分配矩阵后停止,甚至没有正确读取。 我假设我使用 std::ifstream.g ...
下面是资源请求的代码。 我的安全算法运行良好,但是当我要求额外的资源时,它给出了错误情况(请求>需要)。 但是当我实际上这样做时,我找不到任何错误。 这是我的代码 上述代码的输出: 需要的输出: 我在哪里可以进行更改以获得上述输出。 ...
我试图了解银行家的算法是如何工作的。 我有一个关于它如何在我的大学幻灯片上工作的示例,但我不确定为什么跳过了一个进程(在我的情况下为P4 )。 此时不应该这样检查吗? 我是不是误会了什么? 我的答案: 来自大学幻灯片的答案: ...
我一直在研究C中的银行家算法实现,它似乎工作正常,除了分配矩阵没有正确添加值。 在请求资源函数中,我在开始时使用互斥锁并在返回值之前解锁,以指示传递或失败。 在函数本身中,分配矩阵会根据请求和给定的内容进行更新,但是当另一个线程进入并执行请求时,分配将重置并重新开始添加。 我不确定为什么这 ...
当我从主线程中的线程创建调用我的request_resources方法时,该方法未运行。 应该创建一个线程,请求资源,检查安全状态,然后退出。 我不确定为什么它在2个线程后停顿,并且方法中的test语句没有输出。 ...
我正在研究银行家算法,并且正在使用循环创建我的线程。 问题在于,仅当应创建5个线程时才创建4个线程的循环。 我已经检查了我的循环,除非缺少任何东西,否则一切似乎都是正确的。 ...
在图像中提到的问题中,根据p3(0,2,0)的请求,p3的需求变为负值(意味着它具有额外的资源)。 根据其他一般规则,由于存在安全序列,因此可以授予请求:P1 - > P3 - > P2。 在Banker算法中,进程是否可以请求更多资源? 如果存在安全序列,此类请求是否会被 ...
我对 Unsafe State 和 Safe State 有了一些了解。 安全状态是没有发生死锁的机会,而不安全状态并不意味着死锁已经发生,而是意味着可能发生死锁。 我想弄清楚的是,如果系统处于不安全状态,它能否恢复到安全状态? 感谢您的时间! ...
我正在尝试用Java实现银行家算法,但是在加载数组时遇到了麻烦。 这是我正在使用的代码 我的样本文件包含此数据。 五 4 0 0 1 2 1 0 0 0 1 3 5 4 0 6 3 2 0 0 1 4 0 0 1 2 1 7 5 0 2 3 5 6 0 6 5 ...
我正在制作一个简单的银行家算法模拟器。 当我将需求与可用资源进行比较时,它可以正常工作1个循环。 但是,我无法再次重申链接列表。 (在银行家算法中,您可能只能运行链表中的最后一个。在这种情况下,您将不得不再次浏览链表以查看是否可以运行[这是行不通的部分])我认为它与指针有关,但是我不确定。 ...
当我们有锁,完成变量和信号量时为什么需要银行家算法。既然锁是在Linux中以明确的顺序获取的,那么就不会有死锁。那么在这种情况下运行银行家算法有什么用。 ...
明天早上我在 OS Course 进行了期末考试,但遇到了一个问题。 假设我们的系统中有 4 个进程:P1、P2、P3、P4,以及 4 个不同的资源:R1、R2、R3、R4。 图中所示系统的当前 state。 问题是 - “系统是否陷入僵局?” 我解决了几个类似的问题,所以,我认为,系统处于死锁状态 ...
银行家算法:我正在尝试从txt文件读取4个变量。 分配,最大矩阵/可用和请求向量。 我对如何正确阅读感到困惑。 txt文件的第一个值是进程数,第二个值是资源,第一个矩阵是分配,第二个矩阵是Max,最后是2个vectors。这就是我到目前为止所拥有的 这是txt文件: 5 ...
我已经实现了避免死锁的银行家算法.....但是我没有得到一个安全的序列...谁能告诉我我的代码有什么问题..... ???? 请指导我.....程序代码如下: 该程序的输出如下: ...
我需要在Excel中模拟一个计算。 我们必须得到确切的答案。 计算在几个点取整。 Excel将X.5向上舍入。 看起来Teradata正在使用银行家的舍入(将X.5舍入为偶数)。 我无法更改公司数据库中的设置。 我可以使用任何语法吗? 我有一个带有案例声明的临时修复程序,但 ...
虽然银行动态分配资源以确保系统始终安全,但如果其中一个线程没有放弃已分配的资源(由于某些无限循环或其他原因),导致银行无法满足其他线程'需要? 这会被称为僵局吗? ...
N个进程共享M个可以保留的资源单元,一次只能释放一个。 每个过程的最大需求不超过M,并且所有最大需求的总和小于M + N。 系统中会发生死锁吗? ...
只是在Dijkstra的Banker算法中快速查询安全/不安全状态... 如果系统快照中的某个流程(例如下面的一个)已经满足了所有需求,并且没有足够的资源来满足其他任何流程的需求,则系统处于安全状态吗? ? 我知道通常我们假设一个进程一旦收到其所需的资源,它将在不久后终止并返回所有资源, ...