【问题标题】:Critical section with sephamores带有 sephamores 的临界区
【发布时间】:2017-02-28 18:47:25
【问题描述】:
  1. 拿这个伪代码,

    Semaphore S <- 0 
    non-critical section 
    wait(S)
    critical section 
    signal(S)
    

这个临界区问题的解决方案是否只支持互斥?

我知道由于永远不会到达临界区,因此无法摆脱死锁,但这是否也意味着它不支持互斥。

【问题讨论】:

    标签: deadlock semaphore critical-section mutual-exclusion


    【解决方案1】:

    互斥意味着只有1个thread(or process)可以进入Critical Section。所以根据定义,代码不违反mutual exclusion

    这里要注意的重要一点是,所有threads,都会处于busy-waiting状态,根本没有progress,但实际上并没有死锁,因为这4个必须之一死锁的发生条件是CIRCULAR WAIT。但在这种情况下,并不是线程在相互等待。

    【讨论】:

      猜你喜欢
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 2013-03-26
      • 2013-04-07
      • 2021-09-05
      相关资源
      最近更新 更多