我读到了内存的页面结构,无法获得一些观点:
Page table:据我所知,这个过程(比如Intel i5)的页面表和TLB集成在它的水晶中,它不是吗?但是该表并不包含虚拟页面的地址,因此OS必须在操作存储器中具有一个页面表。所以?
倒置表:我知道它有页表,但是该表包含内存实际块的地址。我什么也没得到了。该表位于进程或OS中的哪个位置在操作存储器中。什么是哈希函数?
从图片。 PID - 进程ID(它的用途), p - 页码(物理页面或虚拟页面?如果它是物理页面,那么&# 39;这张表是为了?)。
请不要把我推荐给Wiki等。我已经读过了,但我无法得到。有人能解释清楚吗?
答案 0 :(得分:1)
出于学习目的,您应该从普通的香草页表开始。忽略倒置的页面表开始,因为它们是在很少的处理器中使用的奇怪的球。
最简单的情况是单级页面表。在这种情况下,逻辑地址由逻辑页号和该页内的偏移量组成。要从逻辑页面转换为物理页面框架,请获取页码,将其用作页面表的索引。然后页表指定页面映射到的物理页面框架(如果有的话)。
下一级复杂性是多级页表。在这种情况下,逻辑页码被分解为位字段,其中每个字段表示表中的级别。最重要的位字段位于顶级页表的索引中。相应的页表条目引用另一个页表。下一个最重要的位字段是该页表的索引。重复此过程,直到您到达最后一页表级别,其中条目指定物理页面帧。
请注意,在此系统中,页表从逻辑地址映射到物理页面帧。物理页面框架和逻辑地址之间没有直接映射。
对于倒置页面表,您必须重新学习所有内容。有一个页面表,每个物理页面框都有一个条目。页表指示映射到它的相应虚拟页面(如果有)。
在反向页表系统中,处理器可以直接从物理页面帧映射到逻辑页面。为了从逻辑页面框架映射到物理页面,处理器必须扫描页面表(严重依赖于缓存)。
普通页表的机制在系统中几乎相同(主要区别在于级别数)。但是,在使用反向页表的系统中没有这种相似性。
如果使用反向页表的系统使用单个系统范围的表(而不是每个进程一个表),则表中必须有一个PID字段,以解决具有映射到不同物理的相同逻辑页的进程的模糊性页面框架。
在反向页表中查找逻辑页/ PID组合的一种方法是使用单独的哈希表。这是图中的PID。您“p”似乎是逻辑页码。
要在现实世界中游荡,您只需要知道存在倒置页表及其基本操作。