gpt4 book ai didi

c++ - 为什么共享内存(在 ipc 中)不需要上下文切换?它是来自内核空间的内存映射到用户空间吗?

转载 作者:太空宇宙 更新时间:2023-11-04 05:47:29 24 4
gpt4 key购买 nike

我想了解如果共享内存从内核空间获得内存分配,那么为什么它不通过上下文切换?如果它不是来自内核空间,那么该内存是从哪里分配的。

最佳答案

在大多数现代计算机中,内存不是从内核空间分配的。相反,内核找到一个物理内存页面,然后将其映射到进程当前未使用的虚拟地址处。进程中的物理地址和虚拟地址不一样。所以内存始终是“用户空间”内存。这些都是虚拟内存子系统的一部分。

为了在进程之间共享物理页面,内核将页面映射到两个进程。通常在两者的相同虚拟地址。完成此操作后,内核将不再涉及,因为两个进程在该位置映射了相同的物理内存。因此,任何更改都会显示给两者。

注意:内核内存是通常只能由内核访问的内存,是一个不同的概念。

关于c++ - 为什么共享内存(在 ipc 中)不需要上下文切换?它是来自内核空间的内存映射到用户空间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57313616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com