【linux操作系统】——页表的深入理解

               🍎作者:努力学习的少年

 🍎个人简介:双非大二,一个正在自学c++和linux操作系统,写博客是总结知识,方便复习

 🍎目标:进大厂

 🍎 如果你觉得文章可以的话,麻烦你给我点个赞和关注,感谢你的关注!

 

在每一个进程中,每个进程都有自己的虚拟内存空间,该内存空间能使进程与进程之间相互独立,互不影响,当运行一个进程的时候,cpu是先看到进程的虚拟内存上的数据,然后在通过页表的映射关系找到物理内存中代码和数据,而页表就是将虚拟地址和物理地址建立起映射关系

今天我们要讲的是虚拟地址与物理地址是怎样进行映射的呢。我们以32位linux的操作系统为例。

在32位的平台下,每个地址都是32个字节,那么虚拟内存上就有2^32个虚拟地址,也就是有2^32对映射关系。

假设我们只有一张页表是将虚拟地址和物理地址建立映射关系,那么这张表就有2^32对页表项,每对页表项大约为10个字节,那么这张表就是40个gb,这显然是不可能的,因为物理内存也就才几个g。

然而实际上页表不只有一张,虚拟地址与物理地址的对应方式如下:

为了更好的描述虚拟地址是与物理地址是怎样对应的,我们假设有下面这个虚拟地址。

 首先,虚拟地址的前10个bit位是用来查找一级页表中的对应的页表项每个一级页表的表项对应的是一张一张的二级页表。一级页对应的表项有2^10个,所以一级页表的大小为2^10x10,为10kb。

一级页表项存储的是二级页表,查完一级页表后,我们就可以找到对应的二级页表,然后我们根据虚拟地址中11~20比特位找到二级页表中的对应的页表项,二级页表的页表项对应的是物理内存中的一个一个的页框,每个物理页框的大小是4个kb,所以通过二级页表和虚拟地址中的11~20的bit位就能找到物理内存中页框。二级页表的也是有2^10个对应关系,所以每一张二级页表的大小也是为10kb

通过二级页表我们找到物理内存上某一页框后,然后我们在通过虚拟地址的最后12个bit位的找到页框中具体哪一个字节每个页框的大小是4kb,它是由2^12字节组成,对应每个虚拟地址中的最后12个bit位。这样我们通过页表将虚拟地址和物理地址 一一相对应起来。

 在一级页表中,并不是所有的页表项都有映射关系,如果一级页表中的页表项没有映射关系,那么就不会存在相对应的二级页表,所以最多有2^10张二级页表,一级页表只有一张,因此页表的大小最大也是10*2^10,也就是10mb。

 

接下来我们在补充一个知识点,磁盘上的程序和内存交换是以页框大小进行交互的,编译器在编译生成一个可执行程序的时候,编译器会将可执行程序以页框的大小进行划分,当可执行程序加载到我们的内存时,是以页框为单位加载进我们的内存。

种一颗树最好是十年钱,其次是现在!!!

大家一起加油!!!

 

  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Linux虚拟内存管理是 Linux操作系统中的一个重要组成部分,它允许操作系统和应用程序将物理内存和硬盘空间结合使用,从而扩展可用内存的大小。光盘则是一种存储介质,它使用激光技术读取数据。 在 Linux虚拟内存管理中,操作系统将物理内存划分为一系列固定大小的页框,通常为4KB。当应用程序需要访问数据时,操作系统会将相应的页框映射到该进程的虚拟地址空间中。如果所需的页面不在内存中,操作系统将使用页面置换算法选择一个较长时间未使用的页面进行替换,并将修改过的页面写回硬盘。 而光盘的读取与虚拟内存管理类似。当需要读取光盘上的数据时,光学驱动器通过激光技术读取数据,然后将其存储到物理内存中的特定位置。类似地,虚拟内存管理也能将硬盘上的数据加载到物理内存中。不同的是,光盘是一种非易失性存储介质,而虚拟内存则是为了扩展可用内存大小而使用的一种机制。 深入理解 Linux虚拟内存管理意味着了解虚拟内存管理的原理、数据结构和算法。这包括页表、虚拟内存地址转换、页面置换算法(如LRU或Clock算法)、写回脏页面等。掌握这些知识可以帮助我们更好地理解操作系统如何管理内存,提高系统的性能和效率。 总结而言,深入理解 Linux虚拟内存管理是理解操作系统中的重要概念之一。而光盘则是一种存储介质,与虚拟内存管理类似,但用途不同。通过深入学习虚拟内存管理,我们可以更好地理解操作系统如何管理内存,提高系统性能和效率。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值