操作系统之多级页表

本文介绍了操作系统中采用多级页表的原因,详细解析了二级和三级页表的工作原理,以及它们如何减少内存开销。通过MMU和TLB的概念,阐述了逻辑地址到物理地址的转换过程,强调了多级页表在提高内存访问效率上的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作系统之多级页表

Linux的内存分页管理 - Vamei - 博客园 (cnblogs.com)

TLB原理 - 知乎 (zhihu.com)

虚拟地址 = 逻辑地址

为什么有多级页表

对每一个进程来说,能够用到的地址是有限的,因此如果对虚拟地址的每一个页都设置一个对应项,那么页表的大小是

4GB内存空间 4KB的页大小

共有 2 20 2^{20} 220个页

每个页占据4B(假设)

那么页表占据的空间是 2 22 2^{22} 222B

也就是4MB

这个内存的开销很大

多级页表

前8bit是一级页表,后12bit是二级页表

从前8bit寻址一级页表,里面存着的是对应二级页表的入口地址

二级页表拥有相同的一级页表,里面存着的才是对应的物理地址块的入口

首先第一个好处,不用连续的4MB了,各个页表这里总不用必须强制连在一起

假设还是和原来一样,每一个逻辑页都要记录,那么实际的内存要比4MB还要大

但是!

如果一级页表中所有的内存都没有使用的话,这个页表项就对应为空,那么二级列表就不存在

因此还会大大减少空间的使用

三级列表

最新的Linux就是三级页表

64位机器的页表都是4级的,

不管多少级页表,页表寄存器始终指向一级页表的起始位置 Page Table Base Address

名词解释

MMU

内存管理单元

把逻辑地址翻译成物理地址,其实就是前面说的页表还有段表。

TLB

每多一级页表就可以

原理就是在cache中简历一个快速的列表访问器,如果可以击中就得到物理地址,不能就去多级列表中查

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值