x86两级页表结构

80x86处理器使用两级页表减少内存占用,页目录含1K个表项指向二级页表,二级页表每个表项包含20位物理基地址。线性地址的高10位用于页目录索引,中间10位用于页表索引,低12位为页内偏移。CR3寄存器存储页目录基址,此机制在已实现分段的Linux内核中应用。
摘要由CSDN通过智能技术生成

    页表含有2^20个表项,每项占用4B。如果作为一个表来存放,最多将占用4MB的内存。
    为了减少内存占用量,80x86使用了两级表。
    由此,高20位线性地址到物理地址的转换也被分成两步来进行,每步使用(转换)其中的10bit;

    第一级表称为页目录,page directory。它被存放在1页4K页面中,具有2^10(1K)个4B长度的表项。这些表项指向对应的二级表。
    线性地址的最高10位(位31-22)用作一级表(页目录)中的索引值来选择2^10个二级表之一。

    第二级表称为页表,page table,它的长度也是1个页面,最多含有1K个4B的表项。每个4B表项含有相关页面的20位物理基地址。二级页表使用线性地址中间10位(位21-12)作为表项索引值,以获取含有页面20位物理基地址的表项。该20位页面物理基地址和线性地址中的低12位(页内偏移)组合在一起就得到了分页转换过程的输出值,即对应的最终物理地址。

    CR3寄存器指定页目录表的基地址。

Linux内核完全剖析,p102

    就是第一级是页目录,第二级是页表。第一级中的表项用于在第二级中找一个表项;第二级中的每个表项含有一个20位物理基地址。
    这是指的分段已经实现了,之后的分页操作;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 不一样。 Linux 的软件页表是由操作系统内核维护的虚拟内存管理结构,它是在内存中存储的一种数据结构。而 x86 的硬件页表则是由 CPU 提供的物理内存管理结构,它是存储在硬件中的。 因此,Linux 的软件页表x86 的硬件页表的格式是不一样的,它们有各自的特定格式。 ### 回答2: Linux的软件页表x86的硬件页表格式并不完全相同。 在Linux中,软件页表的格式由内核根据处理器架构和操作系统的需要定义。Linux使用的主要页表数据结构是"Page Global Directory"(PGD)、"Page Upper Directory"(PUD)、"Page Middle Directory"(PMD)和"Page Table Entry"(PTE)。这些数据结构组成了多级页表的层次结构,用于映射虚拟地址到物理地址。 而x86的硬件页表格式,则是处理器直接使用的格式,用于硬件级别的地址转换。x86架构使用的主要页表数据结构是"Page Directory Entry"(PDE)和"Page Table Entry"(PTE)。这些数据结构组成了两级页表结构,用于将虚拟地址映射到物理地址。 虽然软件页表和硬件页表有类似的功能,即将虚拟地址转换为物理地址,但是它们的结构和具体实现方式是不同的。软件页表是由操作系统内核管理和维护的,而硬件页表是由处理器硬件直接进行地址转换。 因此,虽然软件页表x86的硬件页表都用于虚拟地址到物理地址的映射,但其具体的格式和实现方式是不同的。 ### 回答3: Linux 的软件页表x86 的硬件页表格式在某种程度上是相似的,但并不完全一样。软件页表和硬件页表的作用都是用来建立虚拟地址与物理地址之间的映射关系,从而实现虚拟内存管理。 在 Linux 中,软件页表是由操作系统内核维护的数据结构,用来管理进程的虚拟地址空间。它通常是一个多级结构,包含了多个页表项。每个页表项包含与一个虚拟页对应的物理页帧号,以及一些控制标志位。软件页表的格式可以根据不同的架构和需求进行灵活的设计和优化。 而 x86 架构中的硬件页表由处理器的内存管理单元 (MMU) 负责维护。硬件页表使用的是两级结构:页面目录表 (Page Directory) 和页面表 (Page Table)。页面目录表保存了指向多个页面表的地址,页面表则保存了多个页表项。每个页表项包含了对应的物理页帧号,以及一些标志位,如访问权限和缓存策略等。 虽然软件页表和硬件页表在概念上都用来实现虚拟内存的地址映射,但具体的格式和实现方式在不同的操作系统和硬件架构上可能并不相同。在设计上,操作系统可以根据需求对软件页表进行灵活的调整和优化,而硬件页表则由处理器的设计限制,使用固定的格式和规则。因此,软件页表和硬件页表在格式上并不完全一致,但它们的作用和目标是相同的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值