多级页表与快表

本文探讨了单一页表在面对大量进程时内存占用过大的问题,介绍了引入多级页表(如二级页表)以优化内存管理。通过实例解释了多级页表的工作原理,指出在Linux 0.11中,这一结构显著减少了内存消耗。此外,文章还提及了快表(TLB)的概念,作为一种缓存机制,用于加速页表查询,利用程序的局部性原理提高系统性能。
摘要由CSDN通过智能技术生成

之前页表结构的不足

之前的页表结构看起来挺好的呀,有什么问题呢?

如果每个页的大小是4k,也就是2的12次方。如果是32位的地址话,也就是说,有2的20次方个页。

那么对应到页表,也就说页表应该有2的20次方个项。因为每个项表示的是一个内存地址,也就说一个项的大小是32位,也就是4个字节。

这样算下来,对应于一个32位的内存地址,一个页表应该4M大小。看起来还可以接受啊。

但注意,每个进程都有一个页表。看下,我的电脑现在有280个进程,也就说如果采用之前的结构,光页表结构就得占用280*4M=1120M,大约1个G的大小。如果是64位系统,会更加可怕。

引入多级页表

之前的一级页表,我们对于32位系统,4k为一页的时候,我们如果要去访问2的20次方的页表,去查找空闲空间,或者访问某一个页内数据。

现在,我们采用多级页表,如上图所示的是二级页表。

我们如果想访问某一个地址,我们首先通过一个页目录号

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值