我正在阅读互斥条件,如下所示
- 在他们的关键部分内不能同时进行两个过程。
- 没有关于进程的相对速度或CPU数量的假设。
- 在其关键部分之外的任何流程都不应阻止其他流程。
- 任何进程都不应该等待任意长时间进入其关键部分。
醇>
有人能解释一下第二点的含义吗?
答案 0 :(得分:1)
对我而言,这意味着您无法确定某些内容是否正确,因为它只是{少量}指令。进程可能被抢占,cpu可能会被暂停,遭受中断或其他延迟这些假设。
对于任何可能的指令交错,并发代码必须正确。
答案 1 :(得分:0)
这意味着现在一天CPU都带有多核,因此可以实现多编程。一个CPU可以同时运行多个pal程序。 但是当你学习操作系统时,总是假设CPU只有一个核心,只能执行一个程序。 所以写的没有关于多个核心(CPU)的假设。
答案 2 :(得分:0)
我们假设你知道你有一个处理器。我们还假设您的处理器有一个原子指令BBSC(位设置和设置分支),如果设置了一个位且没有分支清除并设置位
,则该指令不能被中断。然后你可以使用这样的指令进行锁定
m_texture
DID_NOT_GET_LOCK:
在这样的单处理器系统中实现锁定变得简单。
如果在混合中添加多个CPU,则该锁定系统会失败。我描述的那条指令至少有两次内存访问:
如果(位置位);记忆测试 转到目的地 其他 设置位;记忆集
如果您有多个处理器,多个进程可以看到Bit同时清除,并且可以进入关键部分。