虚拟页面和页框的区别?

Posted

技术标签:

【中文标题】虚拟页面和页框的区别?【英文标题】:Difference between virtual page and page frame? 【发布时间】:2017-07-04 15:25:27 【问题描述】:

据我了解,页面来自覆盖,它们是由虚拟内存生成的内存空间集群。但我不明白什么是框架或它们之间的关系。

谁能解释一下什么是页面和框架以及它是如何工作的?

【问题讨论】:

【参考方案1】:

页框是主存的物理属性。然而,虚拟页面是……虚拟的。

frame 0  frame 1  frame 2  frame 3  frame 4
----------------------------------------------
|        |        |        |        |        |
|        |        |        |        |        |
---------------------------------------------- Main Memory

【讨论】:

【参考方案2】:

物理内存被组织成页帧。页框的大小是以字节为单位的 2 的幂,并且因系统而异。

逻辑内存被组织成 PAGES。页面大小与页框相匹配。

一个逻辑地址分为页选择器和页内偏移量。

使用页表将逻辑页映射到页框。页表的结构因系统而异。逻辑地址的页选择器用作页表的索引。

在大多数系统中,页表可以指定没有关联页框的有效逻辑地址。这是一个虚拟内存系统。如果应用程序尝试访问这样的页面,则会触发页面错误异常。操作系统页面错误处理程序必须分配一个物理页框,使用来自辅助存储的数据加载页框,更新页表以将逻辑页映射到新分配的物理页框,最后重新启动导致错误的指令。

操作系统管理页表。 CPU(对应用程序透明)使用页表将逻辑页框转换为物理页框。

【讨论】:

【参考方案3】:

页(或内存页、虚拟页或逻辑页)是固定长度的连续虚拟内存块。

一个框架(或内存框架,或物理页面,或页面框架)是一个固定长度的 RAM 块(即物理内存,它存在 - 就像“物理”一样。虚拟内存是为我们的数学工作而发明的正确有效地管理内存)。

请注意,框架可能不连续,但页面会。我们希望操作系统能够处理连续地址,因为它使一切变得更容易。让专用硬件芯片(MMU)将虚拟地址对应到正确的物理地址,反之亦然。

进程使用虚拟地址,而硬件使用物理地址,即。 CPU(将地址放入其地址总线以请求内存访问)和 RAM 子系统(MMU、页表等)。 编译程序时,编译器将程序代码转换为机器可理解的代码,在此过程之间,地址空间以虚拟地址的形式设置。当由处理器处理时,它们会在 MMU 的帮助下再次映射到内存中可用的物理位置,无论是 RAM 还是 HDD。

PS。 我不容忍使用术语页框。您可能会意识到这是混乱的根源。坚持“page”和“frame”,两个很简单的词,意思很清楚。

【讨论】:

【参考方案4】:

根据 SILBERSCHATZ 等人的说法。 “实现分页的基本方法包括将 物理内存 分解为称为 的固定大小的块并分解 逻辑内存 分成相同大小的块,称为 pages。" [操作系统概念第 9 版]

【讨论】:

完美解释【参考方案5】:

首先,分页是一种内存管理方案。 物理内存可以分为帧,逻辑内存可以分为页。页面也称为虚拟页面,框架称为页面框架。物理地址空间中的所有内存块都用帧号标识,逻辑地址用页号标识。

页表由页码及其对应的偏移量组成。

物理地址=(页面大小*帧号)+页面偏移量
帧号是从页表中导出的,页面被添加到空帧中。

【讨论】:

【参考方案6】:

页框是一种物理属性,将主存划分为不同的段,用于虚拟地址存储。它有不同的大小 1/2kb、2k、1.5 等。

【讨论】:

以上是关于虚拟页面和页框的区别?的主要内容,如果未能解决你的问题,请参考以下文章

linux内核在哪里定义了内存中页面或页框的大小?(请说一下具体路径)

iview怎么设置模态框的大小

页眉和页脚幻灯片动画的区别

fieldset框大小怎么设定呢?

Linux内存-伙伴系统

fieldset框大小怎么设定呢?