![]() |
1
0
我仔细研究了算法后才想到这个。 假设进程Y使用了关键部分。因此,它必须将VarQ变量设置为false。 现在,如果进程X尝试进入关键部分。除非进程Y也尝试进入,否则它永远无法进入。原因是条件while(varQ==true)将保持为false,除非进程Y尝试进入关键节,并在这样做时将varQ设置为true,而在离开关键部分(CS)之前,varQ已设置为false。 因此,如我们所见,如果流程Y不尝试进入CS,流程X将被无限期阻止,关键部分也将闲置。 但问题仍然是,缺乏饥饿自由是如何导致缺乏死锁自由的。在死锁中,每个进程都被阻止,但如果进程Y确实再次尝试进入CS,则进程X可能成功地尝试进入CS。 |