用户4700054浅谈内存管理中的分页和分段关注作者腾讯云开发者社区文档建议反馈控制台登录/注册首页学习活动专区圈层工具MCP广场文章/答案/技术大牛搜索搜索关闭发布用户4700054社区首页 >专栏 >浅谈内存管理中的分页和分段浅谈内存管理中的分页和分段用户4700054关注发布于 2022-08-17 12:33:37发布于 2022-08-17 12:33:371.4K0举报文章被收录于专栏:存储内核技术交流存储内核技术交流内存管理的必要性很早之前计算机只能运行单个进程,就算运行批处理程序,也是棑好对,一个一个的进行处理,不存在多个进程并发运行,这时候内核对于内存管理相对比较简单,直接把物理内存地址拿过来是使用即可。随着计算机演进,支持多进程的OS,多个进程都都使用同一个物理地址空间,很容易多个进程之间相互干扰而引起进程的不可预期的行为。为了解决这个问题,CPU中的MMU(内存管理单元)引入了虚拟地址空间。以32位操作系统经为例,每个进程都可以拥有4G的寻址空间,当进程需要内存时候,通过转换技术和虚拟地址进行关联。MMU通过分页的机制,提供进程的虚拟地址到物理地址的映射方法。段页机制是MMU机制提供,Linux内核是使用者。MMU的内存管理机制在x86体系结构下CPU对内存寻址都是通过分段和分页方式进行,在保护模式下,一个段的可以理解为基地址+段的界线+类型。进程的虚拟地址就是在段中的偏移量;线性地址就是在某个段中基地址+偏移地址得出的地址;在x86中MMU提供了分页机制,如果未开启,那么线性地址就是物理地址;反之需要经过分页机制换算后,线性地址才能转为物理地址。MMU对于内存的管理主要是分段和分页,CPU把生成的逻辑地址交给MMU内的分段单元,分段单元为每个逻辑地址生成一个线性地址,然后再将线性地址交给MMU的分页单元,最终生成物理内存的地址。
分段和分页机制每个逻辑地址由两部份组成,段标识符: 段内偏移量。段标识符是由一个16位长的字段组成,称为段选择符。其中前13位是一个索引号。后面3位包含一些硬件细节,段的起始地址,段的长度,段的访问权限等,都会保存在段描述表中。在x86体系结构中,MMU支持多级分页模型,一般分为三种情况;第一种,32位系统中则是两级分页模型;如果在32位系统中开启了PAE(物理地址扩展模式),则为三级分页模型;在64位系统中则为四级分页模型。80x86的分页机制是由CR0寄存器中的PG位开启,如果PG=1则开启分页机制,把线性地址转为物理地址;如果PG=0,禁用分页机制,直接把分段单元产生的线性地址当做物理地址使用。32位或者64位系统的逻辑地址中,经过分段单元,把逻辑地址转换为线性地址,在由分页单元,根据这个地址去查找对应多级页目录,根据页目录查找页表,最终得到物理地址。页表 虚拟地址和物理地址映射关系 本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2021-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除linuxx86分页内存管理本文分享自 存储内核技术交流 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
linuxx86分页内存管理评论登录后参与评论0 条评论热度最新登录 后参与评论推荐阅读目录内存管理的必要性MMU的内存管理机制分段和分页机制领券社区技术文章技术问答技术沙龙技术视频学习中心技术百科技术专区活动自媒体同步曝光计划邀请作者入驻自荐上首页技术竞赛圈层腾讯云最具价值专家腾讯云架构师技术同盟腾讯云创作之星腾讯云TDP关于社区规范免责声明联系我们友情链接MCP广场开源版权声明腾讯云开发者扫码关注腾讯云开发者
领取腾讯云代金券
热门产品域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL 数据库SSL 证书语音识别更多推荐数据安全负载均衡短信文字识别云点播大数据小程序开发网站监控数据迁移Copyright © 2013 - 2026 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 粤公网安备44030502008569号
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档Copyright © 2013 - 2026 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有
登录 后参与评论000推荐