gpt4 book ai didi

mmap() 内部结构

转载 作者:行者123 更新时间:2023-12-04 16:57:09 28 4
gpt4 key购买 nike

众所周知,最重要的 mmap() 功能是在许多进程之间共享文件映射。但众所周知,每个进程都有自己的地址空间。

问题是内存映射文件(更具体地说,它的数据)真正保存在哪里,以及进程如何访问这些内存?
我的意思不是 *(pa+i) 和其他高级别的东西,但我的意思是过程的内部。

最佳答案

这发生在操作系统的虚拟内存管理层。当您对文件进行内存映射时,内存管理器基本上将文件视为进程的交换空间。当您访问虚拟内存地址空间中的页面时,内存映射器必须解释它们并将它们映射到物理内存。当您跨越页面边界时,这可能会导致页面错误,此时操作系统必须将一块磁盘空间映射到一块物理内存并解析内存映射。使用 mmap,它只是从您的文件而不是它自己的交换空间中执行此操作。

如果您想了解有关这种情况如何发生的大量细节,您必须告诉我们您使用的是哪个操作系统,因为实现细节各不相同。

关于mmap() 内部结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/769364/

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