首页 > 解决方案 > 关于面包店算法的一些一般问题

问题描述

在这个面包店算法中,choice[n] 被初始化为 False,而 number[n] 也是 0

int number[n];
bool choosing[n];
while(1){
  choosing[i] = True;
  number[i] = 1 + max(number[0] + ..... + number[n-1]);
  choosing[i] = False;
  for(int j = 0; j < n ; j++){
    while(choosing[j]);
    while(number[j]!=0 && ((number[j],j)<(number[i],i)));
  }
  // Critical Section
  number[i] = 0;
}

在此代码中,如果“choosing[i] = TRUE 并且选择[i] = FALSE, while(choosing[i]);” 被移除了,我们可以保持互斥吗?

然而, number[i] 要么被赋值,要么未被赋值。

标签: calgorithmoperating-system

解决方案


推荐阅读