当前位置: 首页 > news >正文

linux系统中分段与分页

分段和分页均为操作系统管理物理内存的方式,分段划分物理地址为不同的功能段,实操着逻辑地址转化为线性地址,而分页则是将线性地址映射到不同的物理地址

地址分类方式

  • 逻辑地址:Linux程序使用的地址表示类型,例如段选择符+段偏移的分段逻辑地址
  • 线性地址:对整个物理地址进行排序编号后,可用于硬件寻址的地址
  • 物理地址:硬件中内存或存储真实的存储地址

分段

整个系统作为一个运行中的程序,必定存在代码和数据被CPU调用,如果给这些代码和数据提供固定的存储区域并且给出指针,这就是代码段和数据段。

针对不同的功能划分出的存储区域就是分段的雏形,依赖于功能实现,分段也就提出了读写分离等额外功能。

分段机制的具体运作主要涉及到逻辑地址到线性地址的转换。程序真实存储的段信息其实是有 Index+地址偏移的段选择符形式,将段选择符转化为线性地址需要一系列段寄存器和描述符表的帮助。

段选择符的形式是index+T0+offset,index直接代表段选择符对应的段描述符在段表中的序号,T0表示当前段选择符对应的是全局段表还是进程的局部段表,offset表示相对于段起始位置的偏移。

段选择符中的index * 8 + 段表起始位置即为段描述符所在位置,再由段描述符号中的段位置+ base即可获取段的线性地址。而T0代表的全局段表和局部段表由系统的寄存器gdtr或ldtr获取。

分页

分页机制允许程序将数据划分为不同的页,与物理存储的页框一一对应,方便系统进行权限管理和数据传输,主导的是从线性地址到物理地址这一转化。系统默认的页框大小为4KB,即默认以4KB大小进行存储管理和数据传输。

在32位系统下指针可指向的\(2^{32}\)大小的逻辑地址,而一页4KB覆盖了\(2^{12}\)个地址(为什么逻辑地址的单位是字节),因此逻辑地址可以划分为\(2^{20}\)张页。假设每个指向页表的页表项为32bit,直接存储所有逻辑地址的页表占用内存为\(2^{20}*32bit = 4MB\),在多进程同时保存逻辑地址到物理地址映射下,该方案显然是无效的。

Linux系统中实际的分页场景是更灵活的3级分页机制,系统存储一个全局的页目录表,用于维护真实加载所需的页表,而页表中的页表项才是真正对应到物理页框的元素。

32位系统中的逻辑地址由32位指针给定,默认分页大小4KB直接占用了指针的低12位,直接存储高20位占用的内存容量过高,所以Linux给出了页目录表的解决方案。页目录表根据指针前10位作为分类依据,在满负荷下仅需要4Kb的存储容量,而下一级的页表则根据实际加载的内存来灵活分配存储。

实际上也存在2级页表机制,通过扩大页表的存储载体,例如由用4KB页存储页表项扩大为使用2MB页存储页表项,直接使用页目录表来完成内存管理。

分页过程中也有着寄存器的参与,例如从CR3中获取到全局的页目录表,在发现页未进入内存中将地址存入CR2并引发缺页中断。

http://www.jsqmd.com/news/1221825/

相关文章:

  • AI 生成 UI 的代码质量度量:从圈复杂度到可维护性指数的自动化评估
  • 2026年广东中小学课桌椅厂家推荐榜单:小学/初中/高中/培训/幼儿园/定制课桌椅品牌实力与设计创新深度解析 - 甄选服务推荐
  • 杭州商业拍卖全流程解析:从尽职调查到资产过户实操指南
  • 【Bug已解决】Codex cmd-e 快捷键查找粘贴板失效 解决方案
  • Demo 跑通不算数:2026 年面试官只盯紧“权限隔离”与“全链路日志”
  • Odoo报表追踪字段技术解析与实战应用
  • 基于YOLO的吸烟行为检测系统开发实战
  • 从零实现C++异步IO库:深入理解Reactor模式与高性能网络编程
  • 多智能体协作系统:架构设计、框架选型与实战全指南
  • 8x8 LED点阵屏驱动与动态显示技术详解
  • 狗狗真菌皮炎总反复|瑞德医生皮皮乐修护屏障断复发 - 思溯深度专栏
  • 2026 年新发布:旌德评价高的滤水陶粒制造厂哪个好,别再花冤枉钱!这小东西如何彻底改变你的饮水体验? - 企业推荐官【认证】
  • Android与Java定时任务机制对比与最佳实践
  • 专业简历制作全攻略:从框架到高级技巧
  • 前端组件库的选型与定制:从直接用到的渐进式改造
  • 星巴克优惠券推荐系统:可解释性排序与业务驱动的数据分析
  • GPT-5.6 Sol Pro数学推理:从统计学突破到工程实践指南
  • AI算力基础设施革命——从训练集群到三大“AI工厂“的演进
  • K-Means实战手记:从肘部法则到业务可解释聚类
  • 炼丹炉电商数据API集成指南:架构、接口与生产实践
  • 射频天线阻抗匹配实战:从史密斯圆图到VNA校准调谐
  • DSView信号分析实战:从调试困境到高效解决方案的进阶指南
  • WRF2405S-3WR2 适配优选 WF3-24S05S,3W 工业 DC-DC 电源模块规格参数全拆解
  • ARM Cortex-A中断控制器深度解析:以TI OMAP34xx MPU_INTC为例
  • 【Bug已解决】App stops using the configured beta permissions set after the first prompt 解决方案
  • Android网络请求开发全指南:从基础到高级实践
  • 机器学习全栈实践:从数据清洗到模型监控的工业级落地指南
  • 2026年7月靠谱的摘穗板企业推荐,阀板/管梁/冲压件/焊接结构件/制动器防尘罩/摘穗板/钣金件,摘穗板公司找哪家 - 品牌推荐师
  • 预算编制跨部门协同困难?标准化预算编制流程怎么搭建
  • 短信猫硬件选型与AT命令开发实战指南