互斥条件

时间:2018-05-17 09:54:09

标签: multithreading concurrency operating-system mutex mutual-exclusion

我正在阅读互斥条件,如下所示

  
      
  1. 在他们的关键部分内不能同时进行两个过程。
  2.   
  3. 没有关于进程的相对速度或CPU数量的假设。
  4.   
  5. 在其关键部分之外的任何流程都不应阻止其他流程。
  6.   
  7. 任何进程都不应该等待任意长时间进入其关键部分。
  8.   

有人能解释一下第二点的含义吗?

3 个答案:

答案 0 :(得分:1)

对我而言,这意味着您无法确定某些内容是否正确,因为它只是{少量}指令。进程可能被抢占,cpu可能会被暂停,遭受中断或其他延迟这些假设。

对于任何可能的指令交错,并发代码必须正确。

答案 1 :(得分:0)

这意味着现在一天CPU都带有多核,因此可以实现多编程。一个CPU可以同时运行多个pal程序。 但是当你学习操作系统时,总是假设CPU只有一个核心,只能执行一个程序。 所以写的没有关于多个核心(CPU)的假设。

答案 2 :(得分:0)

我们假设你知道你有一个处理器。我们还假设您的处理器有一个原子指令BBSC(位设置和设置分支),如果设置了一个位且没有分支清除并设置位

,则该指令不能被中断。

然后你可以使用这样的指令进行锁定

m_texture

DID_NOT_GET_LOCK:

在这样的单处理器系统中实现锁定变得简单。

如果在混合中添加多个CPU,则该锁定系统会失败。我描述的那条指令至少有两次内存访问:

如果(位置位);记忆测试       转到目的地    其他       设置位;记忆集

如果您有多个处理器,多个进程可以看到Bit同时清除,并且可以进入关键部分。