Robert Love说:"set_task_state ( task,state)将给定的任务设置为给定的状态。如果适用,它还提供了一个内存屏障,以便在其他处理器上强制排序(这只在SMP系统上是需要的),否则它等同于task->state = state
我的问题是:内存屏障如何在其他处理器上强制排序?罗伯特洛夫这样说是什么意思--为什么这是必需的?他可能在说的这个顺序是什么?他是在说这里的
内核源代码文档/内存-Barriers.txt中有这样的说明:
在没有干预的情况下, CPU 1 CPU 2 =======================STORE D = 4 LOAD C (gets &B) LOAD \*C (reads B) 2可能会以某种有效的随机顺序感知CPU 1上的事件,尽管CPU 1发出了写屏障