这是我的第一个问题。我不确定它是否偏离主题。为什么内存映射文件总是映射在页面边界?
虽然自学,我发现关于操作系统下面的语句:在页面边界被映射
操作系统,使内存映射文件总是需要的文件。例如,对于4 KB页,文件可以在起始于虚拟地址映射到4096,而不是在开始虚拟地址5000
此语句以下列方式解释:
如果文件可以映射到页面中间,则单个虚拟页面需要磁盘上的两个部分页面来映射它。第一页,特别是 将映射到临时页面上,并且也映射到文件页面上。处理页面 错误,这将是一个复杂和昂贵的操作,需要复制 数据。此外,将无法捕获对未使用部分页面的引用。 由于这些原因,这是可以避免的。
我想问这个问题的答案。特别是,说“单个虚拟页面需要磁盘上的两个部分页面来映射它”意味着什么?根据我对内存映射文件的了解,虚拟页面被映射到磁盘上的文件,而不是分页文件。这是什么意思的“部分页面”?
此外,这里的“scratch page”是什么意思?我试图在书籍(Tanenbaum的“现代操作系统”和“结构化计算机组织”)和Web上查找这个术语,但还没有找到它。