小编Mar*_*Txz的帖子

基于共享内存的原子变量如何在进程间上下文中工作?

假设一个进程创建了一块大小为 2 个整数(64 位/8 字节)的共享内存。

共享内存不仅可供进程的线程使用,还可供系统上有权访问该共享内存的其他进程使用。

据推测,第一个进程中的共享内存将通过虚拟地址空间进行寻址,因此当对第 1 个整数执行原子操作(cmp 交换)时,将使用第一个处理的上下文中的虚拟地址。

如果另一个进程同时对第一个整数执行某种原子操作,它也将使用自己的虚拟地址空间。

那么什么系统实际上执行到实际物理地址的转换,并且从非常一般的 POV 来看,CPU 在这种情况下如何提供原子性保证?

c c++ multithreading atomic shared-memory

2
推荐指数
1
解决办法
1269
查看次数

标签 统计

atomic ×1

c ×1

c++ ×1

multithreading ×1

shared-memory ×1