windows游戏编程<四>X86 32位保护模式下的内存管理概述(一)
2014-03-28 23:37
351 查看
本系列文章由jadeshu编写,转载请注明出处。/article/10929247.html
作者:jadeshu 邮箱: jadeshu@qq.com 欢迎邮件交流
CPU段式内存管理,逻辑地址转换为线性地址
CPU页式内存管理,线性地址转换成物理地址
目的:CPU进行地址变换(映射)的主要目的是为了解决虚拟内存空间到物理内存空间的映射问题。虚拟内存空间的含义是指一种利用二级或外部存储空间,使程序能不受实际物理内存量限制而使用内存的一种方法
当CR0中的PG位置1时,启动分页管理功能,为0时,这禁止启动分页管理功能,并且把线性地址作物理地址使用。
线性地址= 段基指 + 偏移地址
16位选择子寄存器是原先的段寄存器加上扩展的两个新段寄存器:CS、SS、DS、ES、FS、GS
选择子高13位就是段描述符表的索引(第2位是区分索引GDT和LDT标志)
偏移量是段描述符描述的内存段中偏移
线性地址通过内存分页机制映射为物理地址
如果不需要分页机制那么可以绕过,此时线性地址=物理地址
由地址位数可知一个段的大小最大是2^32 = 4GB
作者:jadeshu 邮箱: jadeshu@qq.com 欢迎邮件交流
CPU段式内存管理,逻辑地址转换为线性地址
CPU页式内存管理,线性地址转换成物理地址
目的:CPU进行地址变换(映射)的主要目的是为了解决虚拟内存空间到物理内存空间的映射问题。虚拟内存空间的含义是指一种利用二级或外部存储空间,使程序能不受实际物理内存量限制而使用内存的一种方法
当CR0中的PG位置1时,启动分页管理功能,为0时,这禁止启动分页管理功能,并且把线性地址作物理地址使用。
线性地址= 段基指 + 偏移地址
16位选择子寄存器是原先的段寄存器加上扩展的两个新段寄存器:CS、SS、DS、ES、FS、GS
选择子高13位就是段描述符表的索引(第2位是区分索引GDT和LDT标志)
偏移量是段描述符描述的内存段中偏移
线性地址通过内存分页机制映射为物理地址
如果不需要分页机制那么可以绕过,此时线性地址=物理地址
由地址位数可知一个段的大小最大是2^32 = 4GB
相关文章推荐
- windows游戏编程<六>X86 32位保护模式下的内存管理概述(二)
- windows游戏编程<三>X86实模式和保护模式
- <<orange‘s :一个操作系统的实现>>读书笔记(2) 保护模式
- (Boolan)C++设计模式 <四> ——观察者模式(Observer)
- UNITY3D shader学习心得<四> 贴图Fiter mode过滤器模式
- <四>读<<大话设计模式>>之代理模式
- <自已动手写操作系统>学习扎记之保护模式
- 设计模式<四>——代理模式
- Nop-Fluent+AutoFAC模式在ASP.NET MVC中的应用场景<四>
- <四>读<<大话设计模式>>之代理模式
- Nop-Fluent+AutoFAC模式在ASP.NET MVC中的应用场景<四>
- 保护模式下的编程<四>
- 黑马程序员 java高新技术<四>--类加载器、动态代理技术的深入讲解与应用
- 设计模式<五>——状态模式
- <自已动手写操作系统>学习扎记之保护模式(x86)
- JAVA设计模式(16) —<行为型>迭代子模式(Iterator)
- Box2d源码学习<四>数学库API的实现
- 《大话设计模式》--简历复印--原型模式<Prototype>(9)
- CSS盒子模式<css定位>1
- Cocos2d-x内存管理研究<二>