内存屏障

内存屏障是一种同步屏障指令,用于确保内存操作的顺序,防止编译器和CPU的乱序执行导致程序行为不符合预期。它确保在内存屏障之前的所有读写操作完成后再执行之后的操作,保障程序的正确性。文章讨论了内存屏障在现代计算机中的作用,特别是在多处理器系统和缓存一致性协议如MESI中的应用。

引用阅读1

引用阅读2

引用阅读3

应用阅读4-我觉得写得很好

局部静态变量是如何做到只初始化一次的?

谢宝友:深入理解Linux RCU:从硬件说起之内存屏障

MESI-缓存一致性协议

1.概念

   内存屏障是指“由于编译器的优化和缓存的使用,导致对内存的写入操作不能及时的反应出来,也就是说当完
成对内存的写入操作之后,读取出来的可能是旧的内容”(摘自《独辟蹊径品内核》)。(这里概念貌似不是很
准确,正确的定义:为了防止编译器和硬件的不正确优化,使得对存储器的访问顺序(其实就是变量)和书写程
序时的访问顺序不一致而提出的一种解决办法。 它不是一种错误的现象,而是一种对错误现象提出的解决方发
----欢迎指正!!--引自【引用阅读1】链接中的码友)


我比较赞同的一个定义:

现在大多数现代计算机为了提高性能而采取乱序执行,这可能会导致程序运行不符合我们预期,内存屏障就是一
类同步屏障指令,是CPU或者编译器在对内存随机访问的操作中的一个同步点,只有在此点之前的所有读写操作
都执行后才可以执行此点之后的操作。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值