原子操作

来源:互联网 发布:linux内核版本 编辑:程序博客网 时间:2024/04/28 13:11

原子操作,atomic operation。google 了半天,答案最多的就是“一系列不可被打断的操作”,借鉴的物理里面最小的物质单位“原子”的概念。(至于还有夸克等等,不在此讨论范围之列)。

 

很想知道原子操能得以实现的底层原理是什么?CPU? 操作系统? 觉得和两者之间都有关系。

 

如果一个操作本身就可以用一条机器指令来完成,那么这个操作就应该是原子的。这是由CPU的运行原理来决定的。因为大部分的CPU在一条指令内部是不会被中断的。(原因好像是CPU在执行一条指令之前会先关中断吧。等指令执行完后才会再打开中断。 具体内容待重新查阅 计算机体系结构后 再确定)

 

可如果一个操作需要多条机器指令来完成呢,那单靠CPU是不是就不能够解决这个问题了。还得操作系统来协助。方法可能是在进程切换上动手脚吧。如果没有了进程的切换,相当于只有一个进程在执行,那所有的操作自然不会被中间打断了。(可参考一哥们写的《管窥OS——进程透明化》)

 

还有一种情况就是系统中可能会存在多个CPU的情况,这时候的原子操作就还得考虑多个CPU内的多个线程之间的协调问题了。唉,头都大了

 

 

 

原创粉丝点击