原子操作,atomic operation。google 了半天,答案最多的就是“一系列不可被打断的操作”,借鉴的物理里面最小的物质单位“原子”的概念。(至于还有夸克等等,不在此讨论范围之列)。
很想知道原子操能得以实现的底层原理是什么?CPU? 操作系统? 觉得和两者之间都有关系。
如果一个操作本身就可以用一条机器指令来完成,那么这个操作就应该是原子的。这是由CPU的运行原理来决定的。因为大部分的CPU在一条指令内部是不会被中断的。(原因好像是CPU在执行一条指令之前会先关中断吧。等指令执行完后才会再打开中断。 具体内容待重新查阅 计算机体系结构后 再确定)
可如果一个操作需要多条机器指令来完成呢,那单靠CPU是不是就不能够解决这个问题了。还得操作系统来协助。方法可能是在进程切换上动手脚吧。如果没有了进程的切换,相当于只有一个进程在执行,那所有的操作自然不会被中间打断了。(可参考一哥们写的《管窥OS——进程透明化》)
还有一种情况就是系统中可能会存在多个CPU的情况,这时候的原子操作就还得考虑多个CPU内的多个线程之间的协调问题了。唉,头都大了