Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 死锁检测算法(伪代码)_Algorithm_Operating System_Deadlock - Fatal编程技术网

Algorithm 死锁检测算法(伪代码)

Algorithm 死锁检测算法(伪代码),algorithm,operating-system,deadlock,Algorithm,Operating System,Deadlock,我正在阅读Silberschatz G.Gagne的《操作系统概念》,在关于死锁的一章中,给出了一个用于死锁检测的伪代码,如下所示: 让Work和Finish分别是长度为m和n的向量。(有n个进程和m个资源。) 初始化工作=可用。对于i=0,1,…,n-1,如果分配[i] != 0,则Finish[i]=false否则,完成[i]=true。 查找索引i,使Finish[i]==false&&Request[i]在运行此算法时,它检测哪些进程(如果有的话)当前涉及死锁 一个没有资源的进程可能正在

我正在阅读Silberschatz G.Gagne的《操作系统概念》,在关于死锁的一章中,给出了一个用于死锁检测的伪代码,如下所示:

  • 让Work和Finish分别是长度为m和n的向量。(有n个进程和m个资源。)

    初始化工作=可用。对于i=0,1,…,n-1,如果分配[i] != 0,则Finish[i]=false否则,完成[i]=true。


  • 查找索引i,使Finish[i]==false&&Request[i]在运行此算法时,它检测哪些进程(如果有的话)当前涉及死锁

    一个没有资源的进程可能正在等待一个死锁的进程,但它本身不能参与死锁,并且与算法的其余部分无关(在第3步中不会有任何影响),因此通过设置
    Finish[i]=true来忽略它


    请注意,该算法仍然不能正确识别死锁进程。步骤4中标记的流程可能会占用资源,并且可能会在等待死锁流程时被阻止,但可能没有需要其占用资源的死锁流程,因此该流程本身不会涉及死锁。

    您的问题基于
    分配
    ,一个不需要分配任何资源的进程当然可以完成(也就是说,不能成为死锁的一部分)。