【从头开始写操作系统系列】页表以及相关的描述符详解

本文深入解析ARM体系结构中的页表,包括页表的作用、MMU地址变换、一级页表地址计算、一级描述符类型,以及如何通过不同描述符获取二级描述符表或段地址。通过实例阐述了二级页表的工作原理。
摘要由CSDN通过智能技术生成

在之前的文章中,我们介绍过 GDT(全局描述符表)以及一致代码段和非一致代码段,这篇文章我们再回到描述符,这次我们来以 ARM 架构为例了解一下页表描述符。

在这篇文章中,我们会看到以下内容:

  • 页表是什么?

  • 一级页表的地址变换过程

  • 由一级描述符来获取二级描述符或者段地址的过程

页表

页表是什么?

页表是一种特殊的数据结构,放在系统空间的页表区,存放逻辑页与物理页帧的对应关系。 每一个进程都拥有一个自己的页表,PCB表中有指针指向页表。
(来自百度百科

通俗的来讲,页表的内容就是一个描述符(关于描述符的介绍请参看该系列文章中的《实现一个 GDT》),我们可以将 GDT 理解成为一个一级描述符表,将 LDT 理解为一个二级描述符表。这篇文章我将以 ARM 体系结构为例,介绍一级页表的地址变换过程以及根据一级页表的类型来获取二级描述符表或者段的物理地址。

MMU 中的地址变换

ARM 系统中的虚拟空间到物理存储空间的映射是以内存块为单位进行的,即虚拟内存中的一块连续的空间被映射到物理存储空间一段连续的地址空间。

ARM 支持以下几种大小的存储块:

  • 段(Section):大小为1MB
  • 大页(Large Pages):大小为64KB
  • 小页(Small Pages):大小为4KB
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值