第10讲 物理内存管理:非连续内存分配.pptVIP

第10讲 物理内存管理:非连续内存分配.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
概 述 非连续内存分配的需求背景 ■ 页式存储管理 页表概述 快表 ■ 页表 ■ 段页式存储管理 ■ 段式存储管理 ■ 多级页表 反置页表 页表结构 每个进程都有一个页表 ■ 每个页面对应一个页表项 页表基址寄存器(PTBR: Page Table Base Register) 随进程运行状态而动态变化 页表 p 1 20 9 10 p o 1 16 9 10 f o 物理地址 逻辑地址 f 0 PTBR CPU + 1 0 页表项组成 帧号:f ■ 页表项标志 ■ 修改位(dirty bit) 引用位(clock/reference bit) 存在位(resident bit) 页表地址转换实例 假定:具有16位地址的计算机系统 ■ 物理内存大小:32 KB 每页大小:1024字节 物理地址空间 (4,1023) (0,0) 15 9 10 f o 物理地址 0 15 CPU 9 10 p o 逻辑地址 0 1 0 0 1 0 0 页表 0 0 0 0 0 0 1 0 标志位 帧号 1 0 1 0 存在位标志 逻辑地址空间 (3,1023) (4,0) (0,0) 页式存储管理机制的性能问题 内存访问性能问题 ■ 访问一个内存单元需要2次内存访问 第二次访问:访问数据 第一次访问:获取页表项 页表大小问题: ■ 页表可能非常大 64位机器如果每页1024字节,那么一个页表的大小会是多少? 如何处理? ■ 缓存(Caching) 间接(Indirection)访问 概 述 页表 ■ 页表概述 多级页表 快表 非连续内存分配的需求背景 ■ 段式存储管理 ■ 页式存储管理 ■ 反置页表 段页式存储管理 ■ 缓存近期访问的页表项 ■ TLB 使用关联存储(associative memory)实现,具备快速访问性能 如果TLB命中,物理页号可以很快被获取 如果TLB未命中,对应的表项被更新到TLB中 1 20 9 10 p o 1 16 9 10 f o 物理地址 逻辑地址 CPU CPU中的快表 f Key Value p p 内存中的页表 f 快表(Translation Look-aside Buffer, TLB) 多级页表 p2 o 逻辑地址 p3 p1 通过间接引用将页号分成k级 ■ 建立页表“树” 减少每级页表的长度 第三级页表 第一级页表 第二级页表 p1 p2 p3 二级页表实例 1 20 10 16 1 16 10 p1 o f o 物理地址 逻辑地址 CPU p2 内存 第二级页表 p2 f PTBR + 第一级页表 页表项 p1 CR3 + 概述 非连续内存分配的需求背景 ■ ■ 页表概述 ■ ■ 段式存储管理 页式存储管理 页表 ■ 快表 多级页表 反置页表 段页式存储管理 大地址空间问题 对于大地址空间(64-bits)系统,多级页表变得繁琐. ■ 比如:5 级页表 逻辑 (虚拟) 地址空间增长速度快于物理地址空间 页寄存器和反置页面的思路 ■ 不让页表与逻辑地址空间的大小相对应 让页表与物理地址空间的大小相对应 页寄存器(Page Registers) ■ 页寄存器示例 ■ 每个帧与一个页寄存器(Page Register)关联,寄存器内容包括: 占用页号(Occupier): 对应的页号p 使用位(Residence bit): 此帧是否被进程占用 保护位(Protection bits) 页面大小: 4096 bytes = 4KB 物理内存大小: 4096*4096=4K*4KB=16 MB 页帧数: 4096 = 4K 页寄存器使用的空间 (假设每个页寄存器占8字节): 虚拟内存的大小: 任意 页寄存器带来的额外开销: 8*4096=32 Kbytes 32K/16M = 0.2% (大约) 页寄存器方案的特征 ■ 优点: 页表大小相对于物理内存而言很小 页表大小与逻辑地址空间大小无关 ■ 缺点: 页表信息对调后,需要依据帧号可找页号 在页寄存器中搜索逻辑地址中的页号 页寄存器中的地址转换 ■ CPU生成的逻辑地址如何找对应的物理地址? 对逻辑地址进行Hash映射,以减少搜索范围 需要解决可能的冲突 ■ 快表的限制 快表的容量限制 快表的功耗限制(StrongARM上快表功耗占27%) 在快表中查找对应页表项 有冲突时遍历冲突项链表 查找失败时,产生异常 ■ 用快表缓存页表项后的页寄存器搜索步骤 对逻辑地址进行Hash变换 反置页表 基于Hash映射值查找对应页表项中的帧号 ■ 1 f o 内存 PTBR + =? =? 运行进程PID Hash PID 页号 进程标

文档评论(0)

peace0308 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档