我从mmap() 内部了解到 mmap 读取的工作原理 - 导致页面错误 - 将文件数据从磁盘复制到内部内核缓冲区 - 将内核缓冲区映射到用户空间
我的问题是:
- 内核映射到缓冲区会发生什么?如果它仍然存在,我们这里是否存在用户应用程序访问内核内存的问题?
- 我们不能这样用完物理内存吗?我假设内核需要最少数量的物理内存来提供不错的性能水平,如果我们继续将它的缓冲区分配给映射的用户空间缓冲区,我们最终会用完缓冲区。
- 在写入期间,相关内存是否会临时映射到内核缓冲区?如果这是一个共享映射,另一个用户进程可以访问并再次访问现在的内核内存
谢谢,如果这些问题非常基本,我很抱歉,但我没有找到明确的答案。