【问题标题】:Anonymous Mapped Page and fork()?匿名映射页面和 fork()?
【发布时间】:2017-07-17 16:50:35
【问题描述】:

当一个进程在其地址空间中调用带有匿名映射页面的 fork() 并且子进程修改该页面后,子进程中的该匿名映射页面是否基本上开始像内存映射页面一样?

【问题讨论】:

标签: linux linux-kernel paging virtual-memory


【解决方案1】:

这取决于传递给mmap 的标志。如果指定了MAP_SHARED,则映射页面将被共享。如果MAP_PRIVATE,映射的页面将不会被共享——每个分叉的进程都会得到自己的副本。

MAP_SHARED 和 MAP_PRIVATE 描述 write 的配置 对内存对象的引用。如果指定了 MAP_SHARED,则写入 引用应更改基础对象。如果 MAP_PRIVATE 是 指定,调用进程对映射数据的修改 应仅对调用进程可见,并且不应更改 底层对象。未说明是否修改 建立 MAP_PRIVATE 映射后完成的基础对象 通过 MAP_PRIVATE 映射可见。 MAP_SHARED 或 可以指定 MAP_PRIVATE,但不能同时指定。映射类型是 跨 fork() 保留。

POSIX.1-2001: mmap

【讨论】:

    猜你喜欢
    • 2015-04-12
    • 2014-09-05
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多