代码之家  ›  专栏  ›  技术社区  ›  Jichao

关于临界截面算法的问题

  •  0
  • Jichao  · 技术社区  · 15 年前

    这个 操作系统概念

    do{
      while (turn != i);
        critical section
      trun = j;
        remainder section
    } while(1);
    

    ,Pi是标识符为i的过程,Pj是标识符为j的过程。为了简化问题,本书将i,j限制为0和1,这两个过程构成环境。

    问题1 是的,这个算法能证明 要求哪一项是电路部分解决方案的三项要求之一?

    或者我对进度要求的理解是完全错误的。所以,因为如果Pi从剩余部分退出,它不能立即进入循环部分,那么这个alg违反了规则。

    问题2 ,

    因此,即使是P0也可能在其 剩余区

    这句话的意思是什么?据我所知,我不明白为什么turn==0和它的余数部分中的p0be可以同时存在。。。

    1 回复  |  直到 15 年前
        1
  •  2
  •   David    15 年前

    假设 turn = 0 turn = 1 . 现在,P1 必须执行其关键部分 在P0可以再次执行其一之前。但仅仅因为两条线 can't determine this at compile time .)

    所以基本上问题是线程是 被迫轮流 ,即使其中一个真的不想无限长时间地进入它的临界区。

    顺便说一下,你对问题1的回答是正确的。该算法不会使测试失败 进展 有限等待