linux之页表详解
页表的详解
在进程地址空间与物理内存之间,就是通过页表来进行映射关联的!
==而页表的功能也不仅仅是简简单单的映射!如下图!==
==我们该如何的去看待资源和页表呢?==
地址空间是进程能看到的资源窗口——诸如:栈区,堆区,内核区,初始化,未初始化数据都是在进程地址空间看到的!所以才说是一个资源窗口!
页表决定,进程真正拥有资源的情况!——因为进程自己认为自己拥有的是整个操作系统的所有资源!但是其实不是!
合理的对地址空间和页表进行资源划分,我们就可以一个进程所有的资源进行分类
==页表是如何将虚拟地址转化为物理地址的呢?==
页表是通过将虚拟地址和物理地址映射,然后查表来完成的!那么它是如何进行查表的呢
首先我们要明白一一页表到底有多大!
虚似地址空间(32位下)一共有2^32个地址!
如果真的是有2^32^个地址!一那么虚拟地址空间也应该有 2^32^个条目!因为我们的每一个地址都要有个条目来映射而且每一个条目都要有很多的属性
我们假设每一个条目有6字节(物理地址+WRX权限+U/K权限+是否命中)
这样的话光是页表就有24GB的空间!——==这是不太可能的!==
==所以我们必须意识到页表不止有一张!==