什么是原子性

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 05:44:31

什么是原子性
什么是原子性

什么是原子性
原子操作是不可分割的,在执行完毕不会被任何其它任务或事件中断.在单处理器系统(UniProcessor)中,能够在单条指令中完成的操作都可以认为是" 原子操作",因为中断只能发生于指令之间.这也是某些CPU指令系统中引入了test_and_set、test_and_clear等指令用于临界资源 互斥的原因.
在对称多处理器(Symmetric Multi-Processor)结构中就不同了,由于系统中有多个处理器在独立地运行,即使能在单条指令中完成的操作也有可能受到干扰.
在x86 平台上,CPU提供了在指令执行期间对总线加锁的手段.CPU芯片上有一条引线#HLOCK pin,如果汇编语言的程序中在一条指令前面加上前缀"LOCK",经过汇编以后的机器代码就使CPU在执行这条指令的时候把#HLOCK pin的电位拉低,持续到这条指令结束时放开,从而把总线锁住,这样同一总线上别的CPU就暂时不能通过总线访问内存了,保证了这条指令在多处理器环境中 的原子性.简单来讲:cpu是一条一条指令执行:
如果读、写:则是两条指令,在并发情况下可能出问题
原子性则是一条指令,完成读写操作.