分层页表与倒表

问题描述:

我读到内存的页面结构,不能获得一些积分:分层页表与倒表

  • 页表:正如我理解的过程(如英特尔酷睿i5)的页面表和TLB集成在它的晶体中,不是吗?但是这张表不包含虚拟页面的地址,所以OS在操作内存中必须有一个页表。所以?

  • 倒转表格:我知道它有页表,但是这个表格包含了实际的内存块地址。而我没有更多。该表位于过程或操作系统中的哪个位置在手术记忆中提供。什么是散列函数?
    Inverted page tables
    来自图片。 PID - 进程ID(它是干什么用的),p - 页码(物理页面还是虚拟页面?如果是物理页面,这个表格是什么?)。

请不要把我介绍给Wiki等等。我已经阅读过了,而且我无法得到。一个人能解释清楚吗?

为了学习的目的,你应该从简单的香草页表开始。忽略倒页表开始使用,因为它们是在很少的处理器中使用的古怪的球。

最简单的情况是单层页面表。在这种情况下,逻辑地址由一个逻辑页码和该页面内的偏移量组成。要从逻辑页面转换为物理页面框架,您需要使用页码,将其用作页面表的索引。页表然后指定页面被映射到的物理页面框架(如果有的话)。

下一级复杂度是一个多级页表。在这种情况下,逻辑页码被分解成位字段,其中每个字段代表表中的一个级别。最高有效位字段位于顶层页面表的索引中。相应的页面表项引用另一个页表。下一个最重要的位域是该页表的索引。该过程重复,直到您到达条目指定物理页面框架的最后一个页面表级别。

请注意,在此系统中,页面表从逻辑地址映射到物理页面框架。物理页面帧和逻辑地址之间没有直接映射。

对于倒排页面表格,您必须重新学习所有内容。有一个页面表,每个物理页面都有一个条目。页面表指示映射到它的相应的虚拟页面(如果有的话)。

在倒排页表系统中,处理器可以直接从物理页框映射到逻辑页面。为了从逻辑页面映射到物理页面,处理器必须扫描页面表(严重依赖缓存)。

正常页表的机制在系统中几乎相同(主要区别在于层数)。但是,在使用倒排页表的系统中没有这种相似性。

如果使用反转页表的系统使用单个系统范围表(而不是每个进程一个表),那么表中必须有一个PID字段来解决具有映射到不同逻辑页的进程的歧义性物理页面框架。

查找倒排页面表中逻辑页面/ PID组合的一种方法是使用单独的散列表。这就是你图中的PID。你“p”似乎是逻辑页码。

为了解决现实世界中的问题,您只需要知道存在倒排页表及其基本操作。

+0

非常感谢你非常详细的答案,真的!但我不能错过倒置的桌子,不幸的是,我的考试需要我知道它。我想为自己得到它。 –

+0

对不起,但我坏了什么是** p **。我知道这是一个逻辑地址。但是它是什么?虚拟内存中的页面地址? –

+1

逻辑和虚拟地址在页面映射到物理页面框架的虚拟内存系统中是相同的。 – user3344003