这是我在这里的第一个问题;我不确定它是否离题。
在自学时,我发现了以下关于操作系统的陈述:
允许内存映射文件的操作系统总是需要在页面边界映射文件。例如,对于 4 KB 页,文件可以从虚拟地址 4096 开始映射,但不能从虚拟地址 5000 开始映射。
该语句解释如下:
如果一个文件可以映射到页面的中间,则单个虚拟页面将需要磁盘上的两个部分页面来映射它。特别是第一页将被映射到暂存页以及文件页。为它处理页面错误将是一项复杂且昂贵的操作,需要复制数据。此外,没有办法捕获对页面未使用部分的引用。由于这些原因,它被避免了。
我想寻求帮助以理解这个答案。特别是,说“单个虚拟页面需要磁盘上的两个部分页面来映射它”是什么意思?根据我对内存映射文件的发现,虚拟页面映射到磁盘上的文件,而不是页面文件。这就是“部分页面”的意思吗?
另外,这里的“临时页面”是什么意思?我试图在书籍(Tanenbaum 的“现代操作系统”和“结构化计算机组织”)和网络上查找这个术语,但没有找到。