前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内存分段与分页机制

内存分段与分页机制

作者头像
sofu456
发布2019-07-09 14:01:33
1.2K0
发布2019-07-09 14:01:33
举报
文章被收录于专栏:sofu456sofu456

1.物理地址和逻辑地址

逻辑地址->线性地址->物理地址

8086CPU:

物理地址:段地址*16+偏移量 (20位总线地址)

逻辑地址:页码*16+偏移量 (16位寄存器地址)

8086CPU以后总线寻址和CPU位数趋于一致,操作系统结构向下兼容,线性地址基址置0:

虚拟地址:每个进程的虚拟地址空间32位操作系统为4G,其中1G内核页面,3G用户页面 (32位CPU寄存器地址)

操作系统保护模式下的,启用分页机制的地址即虚拟地址,实模式下,虚拟地址和逻辑地址相同

物理内存划分:帧(Frame) 逻辑内存划分:页(Page)

地址总线:intel早期CPU20位(内存1M);286的地址总线24位(内存64M);386的地址总线32位(内存4G

总线:地址总线、数据总线、控制总线

2.页表的软硬件实现

页表:段寄存与页码对应表,如下page table

实现方式:硬件使用TLB(Translation look-aside buffer翻译后备缓冲区)+内存存储

3.段表硬件结构

段表:基地址+界限寄存器(限制偏移量大小)

4.逻辑地址结构

逻辑地址 = 段选择符+段内偏移量

段选择符中,索引号对应段描述符

段描述符存放在:

GDT(Global Descriptor Table,全局描述表),GDTR寄存器保存段描述符

LDT(Local Descriptor Table,本地描述表),LDTR寄存器保存段描述符,如单个进程

5.逻辑地址转线性地址

段选择符:TI=0使用GDT,TI=1使用LDT

6.页表数据结构(如:段描述符和段选择符)

a.层次划分页(Hierarchical Paging)

b.Hashed Page Tables 哈希页表

本文参考以下资料,图片引用来源于此,本文只做归纳总结:

http://www.cnblogs.com/felixfang/p/3420462.html

http://blog.csdn.net/drshenlei/article/details/4261909

http://wenku.baidu.com/link?url=6vkfCHh2LeGvc6PfxmmrqKXkv4oM3S6PujD_mdBDiyBjvi5bY5YyCRYdVAqO7T13wECaeBj9CubE6AqRC6ct_rJT6zfkkxJb8armQGgBuZ_

http://blog.chinaunix.net/uid-22683402-id-1771372.html

http://bbs.chinaunix.net/thread-2083672-1-1.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年08月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.物理地址和逻辑地址
  • 2.页表的软硬件实现
  • 3.段表硬件结构
  • 4.逻辑地址结构
  • 5.逻辑地址转线性地址
  • 6.页表数据结构(如:段描述符和段选择符)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档