是否有可能拥有一个不满足有界等待并且只满足互斥和进步的关键部分算法?

时间:2014-09-25 14:35:36

标签: multithreading semaphore critical-section

我一直在阅读关键部分问题,我不能简单地理解以下几行

Wikipedia

  

关键部分通常会在固定时间终止,并且一个帖子,   任务,或过程将不得不等待一段固定的时间进入它(也就是说   有限的等待)

Uregina(类似于Galvin上的定义)

  

必须存在其他进程的次数限制   在进程完成后,允许进入关键部分   请求进入其关键部分并在该请求之前   授予

他们都有以下彼得森的解决方案提供有限的等待?没有计数变量来指示进程进入关键部分的次数?在这种情况下,我们如何满足有限的等待条件?我无法找到任何违反限制等待的算法,有人会显示一个吗?

bool flag[0]   = false;
bool flag[1]   = false;
int turn;
P0:      flag[0] = true;
P0_gate: turn = 1;
         while (flag[1] && turn == 1);
         // critical section
         ...
         flag[0] = false;
         // remainder section

0 个答案:

没有答案