MacOS上别名(ALI)和共享(SHM)内存的差异



我在MacOS上使用vmmap。对于一个区域,它显示共享模式=别名(ALI):

REGION TYPE     START - END       [ VSIZE  RSDNT  DIRTY   SWAP] PRT/MAX SHRMOD PURGE    REGION DETAIL
mapped file  1008dc000-1008e0000  [   16K    16K    16K     0K] rw-/rwx SM=ALI          /Users/USER/*/data

我找不到任何信息,这是什么意思?本页声明

别名内存(ALI)和共享内存(SHM)在进程之间共享。

没有关于ALISHM之间差异的进一步信息。你能帮我理解一下它们的区别吗?

当内存是共享的(SHM)时,两个进程可以同时访问它。

然而,当内存别名(ALI)时,一次只有一个进程将虚拟地址映射到物理内存。当第二个进程尝试访问内存时,将执行以下步骤:

  1. 进程2页面错误
  2. 内核从进程中取消内存映射。
  3. 内核将内存映射给进程
  4. 现在,进程2可以从内存中读写。

这与linux上的内存工作方式不同,linux上没有别名(ALI)模式,只有共享模式。

来源。

相关内容

  • 没有找到相关文章

最新更新