linux 段页内存管理介绍

本文介绍了Linux系统中,CPU如何将虚拟地址转换为物理地址的过程,包括在没有快表和存在快表的情况下的转换步骤。同时,讨论了段页式内存管理的优缺点,如避免紧凑问题、支持动态增长和共享、提供动态链接等优点,以及需要复杂硬件、增加系统开销和空间浪费等缺点。
摘要由CSDN通过智能技术生成

linux中CPU给出虚拟地址转换到物理地址的过程以及访存次数

注:1,2,3...表示逻辑地址到物理地址转换的步骤;黄色的标注的是发生访存的位置(图中标出的是在没有快表的情况下访存的情况);

快表存在时逻辑地址到物理地址的转换过程

1. 在CPU给出有效地址后,由地址变换机构自动地将页号P送入高速缓冲寄存器(也会使用到段号),并将此页号与高速缓存中的所有页号进行比较,若其中有与此相匹配的的页号,便表示所要访问的页表项在快表中;

2. 直接从快表中读出该页所对应的物理块号,并送到物理地址寄存器中。如果在快表中未找到对应的页表项,则还需在访问内存中的页表,找到后,把从页表项中读出的物理块号送地址寄存器;

3. 将此页表项存入快表的一个寄存器单元中,重新修改快表。但如果联想寄存器已满,则操作系统必须找到一个老的且被认为不在需要的页表项换出;

具体的流程如下图:

段页式管理的优缺点

优点:

1. 因为以页为单位分配内存,所以无紧凑问题也无外部碎片

2. 便于处理变化的数据结构,段可以动态增长

3. 便于共享,只需要将程序的段表相应表项指向该共享段在内存中的页表起始地址即可;

4. 因具有段的特点,所以便于提供动态链接,也便于控制存取访问

缺点:

1. 需要更复杂的硬件支持

2. 增加了系统开销和软件编程的复杂度

3. 空间浪费比单纯的分页管理多,因为各段分配的最后以页很有可能部分空间被浪费;另外段表和页表所占的空间都比单纯分页和分段存储管理多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值