根据我的理解,页面来自叠加层,这些叠层层是由虚拟内存生成的内存空间簇。但我不明白帧是什么或它们如何相关。
谁能解释一下页面和框架是什么以及它是如何工作的?
页面框架是主内存的物理属性。然而,虚拟页面是......虚拟的。
frame 0 frame 1 frame 2 frame 3 frame 4
----------------------------------------------
| | | | | |
| | | | | |
---------------------------------------------- Main Memory
物理内存被组织到PAGE FRAMES中。页面框架的大小是2字节的幂,并且在系统之间变化。
逻辑内存被组织到PAGES中。页面大小与页面框架匹配。
逻辑地址分为页面选择器和页面中的偏移量。
使用页表将逻辑页映射到页框。页表的结构因系统而异。逻辑地址的页面选择器用作页表的索引。
在大多数系统中,页表可以指定没有关联页框的有效逻辑地址。这是一个虚拟内存系统。如果应用程序尝试访问此类页面,则会触发页面错误异常。操作系统页面错误处理程序必须分配物理页面框架,使用来自辅助存储器的数据加载页面框架,更新页面表以将逻辑页面映射到新分配的物理页面框架,最后重新启动导致故障的指令。
操作系统管理页表。 CPU(对应用程序透明)使用页表将逻辑页框转换为物理页框。
首先,分页是一种内存管理方案。物理内存可以分为帧,逻辑内存分为页面。页面也称为虚拟页面,帧称为页面框架。物理地址空间中的所有存储器块都用帧号和带有页码的逻辑地址来标识。
页表由页码及其对应的偏移量组成。
Physical address = (page size * frame number) + page offsetThe frame number was derived from the page table and the pages are added into the empty frames.
根据SILBERSCHATZ等人的说法。 “实现分页的基本方法包括将物理内存分解为称为帧的固定大小的块,并将逻辑内存分成称为页面的相同大小的块。” [OS概念第9版]