死锁和无限期推迟有什么区别?

dru*_*rum 4 concurrency

死锁 - 一种情况,其中两个或多个竞争行为各自等待另一个完成,因此两者都没有.

无限期推迟 - 在其他进程受到系统注意的同时无限期地延迟进程的调度

这两个术语看起来非常相似.我怎么能分开呢?

chi*_*NUT 5

在任何使进程在进行资源分配和进程调度决策时等待的系统中,有可能无限期地延迟进程的调度,而其他进程会引起系统的注意.这种情况,不同地称为无限期推迟,无限期阻止或饥饿,可能像死锁一样具有破坏性

从:

http://wps.prenhall.com/esm_deitel_os_3/17/4402/1127072.cw/index.html

薰衣草的僵局条件(1968年) - 7.2.1

•存在循环的进程列表,每个进程都希望列表中的另一个资源拥有该资源.

•无法共享资源.

•只有所有者才能释放资源

•进程可以在请求另一个进程时保留资源

从:

http://www.cs.auckland.ac.nz/~robert-s/415.340/lectures_1997/lecture35.pdf

因此,无限期推迟导致1个进程遭受损失而其他进程正常继续,这可能是由于调度不佳或其他原因造成的,这种情况下无限期推迟的进程总是优先于同一资源之后的所有其他进程.在稍后的某个时间,它可能以足够高的优先级获得资源.

当进程请求另一个进程持有的资源时,会导致死锁.该进程(A)将不会释放资源,直到它获取它正在请求的另一个资源,顺便提到另一个进程(B),它将不会释放它直到它收到另一个进程(C)所持有的资源.在获得(A)所持有的资源之前不会释放它.该方案涉及3个过程,A,B,C; 但它可能涉及2个或更多进程的任何"圈子".