unix - 共享内存在哪里分配?

标签 unix

在 Linux 中,当我们使用共享内存在 2 个或多个进程之间共享数据时,共享内存在哪里分配?

它会在运行时成为进程地址空间的一部分吗?因为进程无法访问其地址空间之外的内存。

有人可以澄清一下吗?

最佳答案

当您拥有共享内存时,该内存将映射到共享内存的每个进程的虚拟地址空间(不一定在每个进程中的虚拟地址相同)。虚拟内存管理器确保虚拟地址都映射到相同的物理地址,以便实际发生共享。

关于unix - 共享内存在哪里分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3929202/

相关文章:

bash - shell 脚本 : intersperse comments between multiline logical operators

shell - Sed:在一行中使用 a、c 或 i

c - 自动将一个套接字转发到另一个套接字

python - 如何将文件列表传递到Python子进程

unix - 在 clojure 中将 unix 时间戳转换为人类可读的日期和时间

c - 由于某种原因,向子进程发送信号丢失了。 sleep 功能的改变导致了一种奇怪的结果

c - recv() 收到不正确的数据

python - 替换部分 fasta header

linux - UNIX/Linux 中的 keepalive 超时

c - 如何循环通过标准输入和管道输出到 C 中的子 execl 命令?