什么是分页?
分页是一种存储结构,它使操作系统能够以页面的形式将进程从辅助存储器调入主存储器。在分页方法中,主存储器被分成小的固定大小的物理内存块,称为页框。为了最大限度地利用主存储器并防止外部碎片,页框的大小必须与页面的大小相同。
分页将交换磁盘上的页面换到物理内存的页框中,因此处理器可以访问数据。任何页面都可以占用任何页框。这会导致分页系统应该处理的多个问题:
何时应将页面换入物理内存?
CPU 如何在物理内存中查找数据,尤其是在其逻辑地址与其物理地址不同的情况下?
当所有页框都包含页面,而 CPU 需要访问最近未保存在物理内存中的页面的数据时,会发生什么情况?
所有这些问题都由内存管理单元 (MMU) 管理。如图所示,逻辑地址从 CPU 输出到 MMU。MMU 将此地址转换为物理地址,该地址提供给高速缓存和物理内存。如果数据未放置在物理内存中,则会产生页面错误,并将页面从交换磁盘换到页框,如有必要,则清除另一个页面。
在此过程中,CPU 无法获知它正在访问的实际物理位置。例如,相对简单的 CPU 指令 LDAC 4234H 并不会解释为“将存储在物理内存位置 3234H 的逻辑内存位置 4234H 的数据加载到累加器中”。它更类似于“将逻辑内存位置 4234H 的数据加载到累加器中”,而它当前占据哪个物理内存位置并不重要,因为 MMU 将负责处理。
同时,物理内存不知道哪些逻辑地址映射到特定的物理内存位置。在此示例中,内存访问不会解释为“输出位置 3234H 的数据,它对应于逻辑地址 4234H”。
相反,它更像是“输出位置 3234H 的数据,因为 MMU 说 CPU 的逻辑地址映射到那里”,而无需知道该逻辑地址是什么。CPU 和内存都不需要知道对方的内存地址,因为 MMU 为它们处理转换。
广告