第三章 内存管理 八、两级页表

目录

一、定义

二、如何实现地址变换

三、注意

四、总结


一、定义

  1. 二级页表是一种分层的虚拟内存管理机制。在二级页表中,虚拟地址被分成两个层次,第一层是页目录,第二层是页表。通过这种方式,二级页表可以管理更大的虚拟内存空间。
  2. 在使用二级页表时,对于每个进程,操作系统都会创建一个自己的一级页表。一级页表中的页目录项可以指向一个二级页表。在二级页表中,每个页表项可以指向一个物理页帧。
  3. 由于虚拟地址空间很大,如果使用单层页表来管理虚拟内存,那么需要大量的内存空间来存储页表。而使用二级页表可以将页表的大小缩小到可以接受的范围内。
  4. 当CPU需要访问某个虚拟地址时,会首先通过一级页表找到对应的页目录项,然后根据页目录项中的信息找到对应的二级页表。最后,在二级页表中找到对应的页表项,获取物理页帧地址。
  5. 二级页表机制的缺点是,由于需要访问多个页表,所以会导致页表转换的开销变大。因此,实际应用中需要根据实际情况选择使用二级页表还是单层页表。

二、如何实现地址变换

1、例子

2、我们将要转换的逻辑地址转换为10进制,(0,1,1023)

3、通过一级页号0,查找内存块号为3

4、然后在内存中找到页表存放的位置为3,并得到二级页表,通过二级页号1,找到内存块号为4

5、通过二级页表对应的内存块号4,找到最后要找的内存块为4

6、通过页面大小和页内偏移量计算出物理地址

7、流程

三、注意

四、总结

相关推荐
Trouvaille ~17 小时前
【Linux】库制作与原理(二):ELF格式与静态链接原理
linux·运维·c语言·操作系统·动静态库·静态链接·elf文件
小李独爱秋20 小时前
Linux操作系统实验报告单(13) 显示进程列表
linux·运维·服务器·操作系统·实验报告单
_OP_CHEN1 天前
【Linux系统编程】(十八)Linux 进程创建与终止进阶:等待机制与程序替换的底层密码
linux·服务器·操作系统·进程·进程等待·进程替换·exec函数族
柏木乃一2 天前
进程(6)进程切换,Linux中的进程组织,Linux进程调度算法
linux·服务器·c++·算法·架构·操作系统
_OP_CHEN2 天前
【Linux系统编程】(十七)揭秘 Linux 进程创建与终止:从 fork 到 exit 的底层逻辑全解析
linux·运维·服务器·操作系统·shell·进程·进程创建与终止
_OP_CHEN3 天前
【Linux系统编程】(十六)揭秘 Linux 程序地址空间:从虚拟地址到内存管理的底层逻辑实战
linux·操作系统·虚拟地址空间·系统编程·进程地址空间·虚拟内存管理·程序地址空间
Kyle01234 天前
计算机体系结构中的中断处理机制:硬件响应与软件识别的协同架构
架构·操作系统·计组
小林up4 天前
【MIT-OS6.S081作业4.3】Lab4-traps-Alarm
操作系统·xv6
散一世繁华,颠半世琉璃5 天前
从 0 到 1 优化 Java 系统:方法论 + 工具 + 案例全解析
java·性能优化·操作系统