Lecture 15 虚拟存储器ppt课件_第1页
Lecture 15 虚拟存储器ppt课件_第2页
Lecture 15 虚拟存储器ppt课件_第3页
Lecture 15 虚拟存储器ppt课件_第4页
Lecture 15 虚拟存储器ppt课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

引入 存储系统的层次结构 10ns 20ns 200ns ms 速度 容量 课程结构 主要内容 虚拟存储器概述什么是虚拟存储器如何表达实地址和虚地址主存 辅存层次与主存 cache层次的比较存储器管理段式管理页式管理页式虚拟存储器段页式虚拟存储器 1 什么是虚拟存储器虚拟存储技术是为了扩大主存的寻址空间而采用的 虚拟存储器是建立在主存与辅存物理结构基础之上 由附加硬件装置以及操作系统存储管理软件组成的一种存储体系 它把主存和辅存的地址空间统一编址 形成一个庞大的存储空间 在这个大空间里 用户可自由编程 完全不必考虑程序在主存中是否装得下 或者放在辅存的程序将来在主存中的实际位置 编好的程序由计算机操作系统装入辅助存储器中 程序运行时 附加的辅助硬件机构和存储管理软件会把辅存的程序一块块自动调入主存由CPU执行或从主存调出 用户感觉到的不再是处处受主存容量限制的存储系统 而是一个容量充分大的存储器 实质上CPU仍只能执行调入主存的程序 所以这样的存储体系称为 虚拟存储器 虚拟存储器概述 2 虚地址和实地址用户编程时指令地址 称为 虚地址 即虚拟地址 或叫 逻辑地址 虚地址对应的存储空间称为 虚拟空间 或叫 逻辑空间 实际的主存储器单元的地址则称为 实地址 即主存地址 或叫 物理地址 实地址对应的是 主存空间 也称物理空间 显然 虚地址范围要比实地址大得多 虚拟存储器概述 3 主存 辅存层次与主存 Cache层次的比较相同点 它们都把存储器划分为一个个信息块 运行时都能自动地把信息块从慢速存储器向快速存储器调度 信息块的调度都采用一定的替换策略 新调入的信息块需遵守一定的映射关系变换地址后来确定其在存储器的位置 虚拟存储器概述 3 主存 辅存层次与主存 Cache层次的比较不同点 1 主存 Cache存储器每次传递是定长的的信息块 长度只有几十字节 而虚拟存储器信息块划分方案很多 有页 段等等 长度均在几百字节至几百千字节左右 2 主存Cache存储器用来弥补主存和CPU之间的速度差距 而虚拟存储器弥补主存的容量不足 3 CPU访问快速Cache存储器的速度比访问慢速主存快5 10倍 虚拟存储器中主存的速度要比辅存快100 1000倍以上 4 CPU与Cache和主存都建立了直接访问的通路 辅助存储器与CPU之间没有直接通路 一旦在主存中不命中 则只能从辅存调度信息块到主存 因为辅存的速度与CPU的速度差距太大 调度需要毫秒级时间 因此 CPU一般将改换执行另一个程序 等到调度完成后再返回原程序继续工作 虚拟存储器概述 3 主存 辅存层次与主存 Cache层次的比较不同点 5 主存 Cache存储器存取信息的过程 地址变换和替换策略全部用硬件实现 所以对各类程序员均是透明的 主 辅层次的虚拟存储器基本上由操作系统的存储管理软件辅助一些硬件进行信息块的划分和主 辅存之间的调度 所以对设计存储管理软件的系统程序员来说 它是不透明的 而对于广大用户 因为虚拟存储器提供了庞大的逻辑空间可以任意使用 对应用程序员来说是透明的 虚拟存储器概述 问题 虚拟存储器是从硬盘上划分出的一部分 那我直接访问硬盘和访问虚拟存储器有什么区别吗 既然虚拟存储器是硬盘上的一部分 那为什么主存不能直接访问硬盘而是要通过虚拟存储器呢 可以这样理解 1 CPU只能访问内存 所有程序和数据都必须先到主存 CPU不能直接提供硬盘的地址 这会导致硬件设计时考虑的因素太多 因为硬盘的容量 类型等差异很大 2 内存容量非常有限 不可能将CPU执行程序过程中的所有代码和数据装入内存 需要对主存进行扩充3 一种扩充办法是增加内存容量 另一种扩充办法是借用硬盘 这借来的部分可以视为虚拟的内存4 CPU在执行程序时或访问数据时 提供的一个在全局 内存 含虚拟内存 上的地址 因为在CPU看来 这个扩充后的内存是足够大的5 显然 CPU提供的在全局 内存 含虚拟内存 上的地址并不能直接作用在真实内存上 因此需要进行课程提到的映射等 虚拟存储器需要解决的问题 调度问题 哪些程序和数据应被调入物理空间 主存 地址映射问题替换问题更新问题 主要内容 虚拟存储器概述什么是虚拟存储器如何表达实地址和虚地址主存 辅存层次与主存 cache层次的比较存储器管理段式管理页式管理页式虚拟存储器段页式虚拟存储器 段是利用程序的模块化性质 按照程序的逻辑结构划分成的多个相对独立的部分按段调入物理空间一般用段表来指明各段在主存中的位置 如图所示 段式管理 段式管理的特点把主存按段分配优点 段的分界与程序的自然分界相对应 段的逻辑独立性使它易于编译 管理 修改和保护 也便于多道程序共享 缺点 容易在段间留下许多空余的零碎存储空间不好利用 造成浪费 段式管理 页式管理系统的信息传送单位是定长的页 主存的物理空间也被划分为等长的固定区域 称为页面 优点 空间浪费要小得多 缺点 页式管理系统的缺点正好和段式管理系统相反 由于页不是逻辑上独立的实体 所以处理 保护和共享都不及段式来得方便 页式管理 注意 块表 段表 页表 在页式虚拟存储系统中 把虚拟空间分成页 主存空间也分成同样大小的页 称为实页或物理页 而把前者称为虚页或逻辑页 假设虚页号为0 1 2 m 实页号为0 l l 显然有m l 可把虚拟地址分为两个字段 高位字段为虚页号 低位字段为页内字地址 虚拟地址到主存实地址的变换是由页表来实现的 在页表中 对应每一个虚存页号有一个表目 表目内容至少要包含该虚页所在的主存页面号 用它作为主存地址的高字段 与虚拟地址的页内地址字段相拼接 就产生完整的实主存地址 据此访问主存 页式管理的地址变换如下图所示 页式虚拟存储器 页式虚拟存储器 例 设主存容量64KB 虚存容量1MB 页面大小为512B 1 写出主存地址格式 2 写出虚拟地址格式 3 页表的长度为多少 4 画出虚实地址转换示意图 例题解答 1 主存容量64KB 64KB 216 所以主存地址为16位 主存地址格式为 15980物理页号 7位 页内地址 9位 2 虚存容量1MB 1MB 220 所以虚存地址为20位 虚拟地址格式为 19980虚页面号 11位 页内地址 9位 3 每一个虚页面号在页表中有一项 指出该虚页面号对应的实页号 7位 有效位 1位 所以页表的长度为211 2048 2K行 8位 4 虚实地址转换示意图如下图所示 注意拼接 用快表和慢表实现虚实地址变换 假设页表是保存在主存储器中 那么 在访问存储器时 首先要查页表 既使页面命中 也得先访问一次主存去查页表 再访问主存才能取得数据 这就相当于主存速度降低了一倍 如果页面失效 要进行页面替换 页面修改 访问主存次数就更多了 因此 把页表的最活动部分存放在快速存储器中组成快表 快表由硬件组成 它是一张高速查找表 表中存放大多数近期很可能需要访问的页面项 查表时 由虚页号同时去查快表和慢表 当在快表中有此虚页号时 就能很快地找到对应的实页号送入实主存地址寄存器 如果在快表中查不到时 那就要费一个访主存时间查慢表 从中查到实页号送入实主存地址寄存器 并将此虚页号和对应的实页号送入快表 替换快表中某一行内容 这要用到替换算法 快表和慢表实现虚实地址变换图 程序先按模块分段 段内再分页 主存仍以页为信息传送单位 用段表和页表进行两级管理 如果有多个用户在机器上运行 称为多道程序 多道程序的每一道需要一个基号 用户标志号 可由它指明该道程序的段表起点 这样 虚拟地址应包括基号D 段号S 页号P 页内地址 格式如下 基号D段号S页号P页内地址d 段页式虚拟存储器 段页式存储举例 假设实主存分成32个页面 有A B C三道程序已经占用主存 如图阴影 斜线 部分所示 现在又有D道程序要进入 它有三段 段内页号分别为0 1 0 1 0 1 2 如采用纯段式管理 虽然主存空间总计空余相当于8个页面 比D道程序所需空间 相当于7个页面 要大 但因第二段所需空间相当于3个页面 比任何空隙都大而无法进入 采用段页式管理后则可调入 各段 页在主存位置如下图所示 访问的程序地址为D道1段页4单元时 其地址变换过程 10 例题 某计算机采用段页式虚拟存储器 已知虚拟地址有32位 按字编址每个段最多可以有1K页 每页16K字 主存容量64M字 1 求虚拟存储器容量 2 写出逻辑地址和物理地址的格式 不考虑多道程序 3 求段表和页表长度 解答 1 虚存容量 232字 4G字 2 1K 210 所以逻辑页号有10位 16K 214 所以页内地址有14位 虚拟地址的段号 32 10 14 8位 逻辑地址由8位段号 10位页号 14位页内地址构成 逻辑地址 段号页号页内地址81014主存容量 64M 226 所以物理地址26位 其中页号12位 页内地址14位 物理地址 页号页内地址1214 3 段号8位 段表长度 28行 每行指出页表的起始地址 物理地址26位 和有效位等 取4字节以便于管理 段表长度 28 4字节 页号10位 每段页表长度 210行 每行指出物理页号 12位 和有效位等 取2字节以便于管理 页表总长度 28 210 2字节 219字节 替换算法 当新的辅存的页需要调入主存而主存的页已被占满时 就产生替换问题 常用的替换算法与Cache相同 全相联 有 先进先出 FIFO 算法和近期最少使用 LRU 算法 例题某虚拟存储器系统采用页式内存管理 假定内存容量为4个页面 开始时是空的 页面访问地址流 18178272183821317137 使用LRU页面替换算法和FIFO算法 假设开始时主存为空 1 设主存容量为3个页 两替换算法各自的命中率是多少 2 当主存容量增加到4个页时 两替换算法各自的命中率又是多少 采用LRU算法的命中率为9 20 45 采用FIFO算法的命中率为9 20 45 表主存页面为3时的调页情况 主存页面为4时的调页情况 采用LRU算法的命中率为15 20 75 采用FIFO算法的命中率为14 20 70 虚拟存储器工作的全过程 对虚拟存储器来说 程序员按虚存储空间编制程序 机器指令中给出的地址码是虚地址 可由虚页号及页内地址组成 如下所示 虚地址虚页号Nv页内地址Nr Nvd驱动器号磁道号 圆柱面号 记录面号 磁头号 块号块内地址 因此 在虚拟存储器中还应有虚拟地址到辅存实地址的变换 辅存一般按信息块编址 而不是按字编址 若使一个块的大小等于一个虚页面的大小 这样就只需把虚页号变换到Nvd即可完成虚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论