• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

原子操作是针对硬件(处理器)还是软件(多线(进)程)?

沃尔夫斯堡的羊 2019-12-12 浏览量:726
如题,在某本书中看到关于介绍 原子操作的说明有这样一句话“在单处理器系统中,永远都不会发生内存总线窃用的情况”,这说明单处理器从内存中读取数据、更新数据并把更新后的数据写回到内存中这样的“读-修改-写”的操作是原子的,可是又记得多线程中也介绍原子操作,是针对多线程而言,,,那么,单处理器中如果存在多线程应用,对同一个内存位置进行操作(不是原子操作),这与前面关于单处理器内存读修改写的操作是原子的,会不会有冲突?线程同步也会形成原子操作,,亦或原子操作是针对多处理器还是多线程?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:3
  • 在裸机中原子操作是避免中断的影响,
    在多进程中,是避免进程的调度对操作的影响
    都是有原子操作的实现方式的。
    原子的操作,只是说这一段程序一次性运行完,没有中断,或是进程调度来打断。
沃尔夫斯堡的羊 回复了 莱克迷KW:一段程序一次性运行完,没有中断是临界段的作用,原子操作应该是针对一指令而言。 回复

  • 针对的是软件,所谓的原子操作,就是它的那条语句,可以在一个指令周期执行完成,这样就不会受到操作系统调度的影响

  • 对硬件肯定是单线程的,但是对于软件的控制,可以通过多线程来实现操作

相关问题

问题达人换一批

原子操作是针对硬件(处理器)还是软件(多线(进)程)?