news 2026/6/23 19:46:45

基于IA-32/x86-64架构的内存管理策略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于IA-32/x86-64架构的内存管理策略

为什么64位系统不适用二级页表?

补充 - PAE技术

PAE是什么?

PAE(页地址扩展)是一种允许32位处理器访问超过4GB物理内存的技术。在传统的32位系统中,由于地址总线宽度为32位,因此最大可寻址的内存空间为4GB。PAE通过将物理地址扩展至33位(或更多),使得系统能够支持更多的物理内存,下面的例子是扩展两倍物理内存,即8GB,但需要注意的是,32位系统的进程地址空间仍然限制在4GB以内。

传统32位分页(无PAE)

  • 虚拟地址:32位 → 4GB虚拟地址空间

  • 物理地址:32位 → 4GB物理内存

  • 如果没有PAE,物理地址是 33位 → 8GB物理内存 ,后4GB内存将访问不到,只能访问前4GB物理内存

PAE模式分页

  • 虚拟地址:仍为32位 管理 4GB

  • 物理地址:扩展到33位 物理内存扩展2倍 8GB

  • 区别:

    • 页表条目大小从20位比特位 扩展到 21位

主要区别

  • 页表条目大小 变大了 页表条目主要存放物理号 ,原本的物理号的范围是0~1048575, 只需要20个比特位就能存放这个整数,这里只是举例,实际上因为内存对齐的原因,实际是用32位整数存储物理号,现在的物理号范围0~2,097,152 ,需要21个比特位,实际的物理地址 = 物理号 + 页内偏移 ,因此32位的物理地址 扩展到 33位物理地址

  • 因为物理空间增大了,物理页也增多

  • 对应地址转换机构需要调整 虚拟地址(32位) → 物理地址(33位)

注意:采用PAE时需要OS支持

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 15:22:20

LeetCode 最小覆盖子串:滑动窗口 + 哈希表高效解法

引言:为什么这道题是算法面试高频题?“最小覆盖子串”(LeetCode 76)是字符串处理领域的经典难题,也是大厂面试中高频出现的算法题。它的核心考点是滑动窗口(双指针) 与哈希表的结合运用&#xf…

作者头像 李华
网站建设 2026/6/23 17:53:44

BuildKit配置文件全方位调优:从入门到精通实战手册

BuildKit配置文件全方位调优:从入门到精通实战手册 【免费下载链接】buildkit concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit 项目地址: https://gitcode.com/GitHub_Trending/bu/buildkit 在容器化开发日益普及的今天,…

作者头像 李华
网站建设 2026/6/23 18:37:41

Netcode for GameObjects Boss Room 多人RPG战斗(19)

ActionPlayers ActionPlayers是Boss Room项目中负责管理和执行动作(Action)的核心组件,分为客户端和服务器端两个版本,分别处理动作的视觉表现和逻辑执行。 1. 系统架构 1.1 核心组件 组件 职责 位置 ClientActionPlayer 客户端动作可视化与生命周期管理 Assets/Scripts/G…

作者头像 李华
网站建设 2026/6/22 16:42:36

深度学习优化器算法巧思速览

1. 为什么要研究优化器算法?它的关联问题:训练为什么要调参,调的是什么参?如果就这个问题去问各种大语言模型,它们能给出一堆的理由。但就博主而言,答案只有一个:干掉调参,解放生产力…

作者头像 李华
网站建设 2026/6/23 12:20:29

macOS上优雅运行Docker容器

什么是colimacolima主页Colima(Container on Lima)是一个轻量级的容器运行时管理工具,专为macOS(同时也支持Linux)设计,提供了一种简单优雅的方式来运行容器。它基于Lima项目,后者为macOS提供了…

作者头像 李华