扩展页表的用途是什么?

时间:2015-03-15 20:30:25

标签: c operating-system cpu computer-architecture processor

我们可以使用c程序显示页面地址吗? 页表和扩展页表之间有什么区别?

2 个答案:

答案 0 :(得分:5)

  

我们可以使用c程序显示页面表地址吗?

不使用普通的C程序,不,你不能。用户模式程序在虚拟内存中运行,该内核由内核提供,使用分页机制。所有这些都被抽象掉了,因此用户空间对此一无所知。

Linux内核确实为用户空间提供了观察页面表的机制,如this question所示。

  

页表和扩展页表之间有什么区别?

"扩展页表"是英特尔Second Level Address Translation (SLAT), also known as nested paging的实现,用于更有效地虚拟化来宾虚拟机的内存。

基本上,客户虚拟地址首先被转换为客户物理地址,然后转换为主机物理地址。这些都是在硬件中完成的(由MMU完成),以避免VMM需要在软件中完成额外的工作。

答案 1 :(得分:3)

1]什么是二级页面表 扩展页表是一种允许每个虚拟机管理其页表的机制,而无需访问底层主机的MMU - 硬件。 快速浏览下面的链接。它应该给出一个想法 http://www.cs.cmu.edu/~dga/15-440/F10/lectures/vm-ucsd.pdf

2]是否可以使用C程序打印页面表?     - 完全可能。系统中将有一个MMU驱动程序。 MMU驱动程序将在RAM的某些部分设置页表。你需要知道那个位置。 在传统的操作系统[linux,windows等]中。此内存区域将具有特权,因此应用程序可能无法直接访问。 如果您的平台是运行微内核的嵌入式系统,那么您可以访问该表。