关于考虑关键部分问题的三个要求的问题

Jer*_*hao 3 synchronization operating-system

最近,我正在阅读有关临界区问题的《操作系统概念》第六章,在6.2节中,我们知道解决同步问题的算法必须满足三个要求:1.互斥2.进度3.有界等待。显然,如果一种算法满足第二个要求(进度),则不一定由于处理速度或调度问题而意味着该算法满足“有界等待”。

但是,我的问题是,如果一个算法满足“有界等待”的要求,我们可以由此暗示这个算法也满足“进度”的要求吗?如果否,请问情况如何?如果是,为什么我们不只提出第三项要求,而删除第二项,因为第三项可能意味着第二项。顺便说一句,任何人都可以解释第二个和第三个之间的关系(和差异)吗?

Sum*_*Tea 5

进度和有限等待的概念完全不同。

有界的等待意味着进程最终可以得到锁/互斥量。进度条件表示流程可以完成其执行。有一种情况称为“活锁”(对应于死锁),其中将两个或多个进程组织为一个进程组,所有进程都可以获取或释放锁,这满足了“有界等待”的要求,但是该进程组无法继续工作(或为什么我们称它为活锁。

祝你好运和问候