组成第十五讲:虚拟存储器.ppt_第1页
组成第十五讲:虚拟存储器.ppt_第2页
组成第十五讲:虚拟存储器.ppt_第3页
组成第十五讲:虚拟存储器.ppt_第4页
组成第十五讲:虚拟存储器.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

虚拟存储器 虚拟存储器概述页式虚拟存储器段式虚拟存储器段页式虚拟存储器存储管理部件 虚拟存储器概述 虚拟存储器的提出1961年英国曼彻斯特大学Kilbrn等人提出 70年代广泛地应用于大中型计算机系统中 目前许多微型机也开始使用虚拟存储器 是进一步完善主存 辅存存储层次 解决主存容量提出的 虚拟存储器概述 什么是虚拟存储器虚拟存储器是建立在主存 辅存物理结构的基础之上的 是由附加硬件装置及操作系统存储管理软件组成的一种存储体系 将主存和辅存的地址空间统一编址 形成一个庞大的存储空间 借助于磁盘等辅助存储器来扩大主存容量 使之为更大或更多的程序所使用 虚拟存储器可使主存的容量像辅存 磁盘 一样大 虚拟存储器中程序可以像访问主存一样访问外存 虚拟存储器概述 虚似存储器的功能与特点虚拟存储器是 主存 外存 层次 是一个逻辑模型 并不是一个实际的物理存储器 虚拟存储器解决了存储容量 存取速度和价格之间的矛盾 是管理存储设备的有效方法 使计算机的存取容量达到辅存的容量使计算机存储速度接近主存的速度使计算机整个存储系统的成本接近辅存的成本有了虚拟存储器 用户无需考虑所编程序在主存中是否放得下或放在什么位置等问题 虚拟存储器概述 虚地址和实地址虚拟存储器的辅存部分能让用户像内存一样使用 用户编程时指令地址允许涉及辅存大小的空间范围 这种指令地址称为虚地址 虚拟地址 逻辑地址 实际的主存储器单元的地址则称为实地址 主存地址 物理地址 虚地址范围要比实地址大得多 虚拟存储器概述 物理地址由CPU地址引脚送出 用于访问主存的地址 虚拟地址由编译程序生成的 是程序的逻辑地址 其地址空间的大小受到辅助存储器容量的限制 虚拟存储器概述 虚拟存储器和cache存储器虚拟存储器和主存 cache存储器是两个不同存储层次的存储体系 CPU 主存 辅存之间的关系CPU Cache 主存之间的关系 虚拟存储器概述 虚拟存储器和cache存储器在概念上有不少相同之处 都把程序划分为一个个信息块 运行时都能自动地把信息块从慢速存储器向快速存储器调度 都是采用一定的地址变换映射方法和替换策略 从原理上看是相同的 都基于程序局部性原理 虚拟存储器概述 虚拟存储器和cache存储器的不同之处 主要功能传送信息块长度访问速度虚拟存储器对未命中更加敏感对程序员是否透明 虚拟存储器概述 主要功能 cache存储器采用与CPU速度匹配的快速存储元件弥补了主存和CPU之间的速度差距 虚拟存储器虽然最大限度减少了慢速辅存对CPU的影响 但它的主要功能是用来弥补主存和辅存之间的容量差距 具有提供大容量和程序编址方便的优点 虚拟存储器概述 传送信息块长度 cache存储器每次传送的信息块是定长的 只有几十字节 虚拟存储器信息块划分方案很多 有页 段等 长度均在几百至几百K字节左右 访问速度 CPU访问cache存储器的速度比访问慢速主存快5 10倍 虚拟存储器中的主存速度要比辅存缩短100 1000倍以上 虚拟存储器概述 虚拟存储器对未命中更加敏感 主存 cache存储体系中CPU与cache和主存都建立了直接访问的通路 一旦不命中时 CPU直接访问主存并同时进行向cache调度信息块 从而减少了CPU等待的时间 辅助存储器与CPU之间没有直接通路 一旦在主存不命中时只能从辅存调块到主存 因为辅存的速度相对CPU差距太大 调度需要时间较长 因此CPU一般改换执行另一个程序 等到调度完成后返回原程序继续工作 虚拟存储器概述 对程序员是否透明 Cache存储器存取信息的过程 地址变换和替换策略全部用硬件实现 所以对各类程序员是透明的 主 辅层次的虚拟存储器基本上由操作系统的存储管理软件辅助一些硬件进行信息块的划分和主 辅存直接的调度 所以对设计存储管理软件的系统程序员来说 它是不透明的 而对广大用户 因为虚拟存储器提供了庞大的逻辑空间可以任意使用 所以对应用程序员是透明的 虚拟存储器的分类 虚存通过增设地址映象表机构来实现程序在主存中的定位 这种定位技术是把程序分割成若干个较小的段或页 用相应的映象表机构 来指明该程序的某段或某页是否已装入主存 若已装入主存 则应同时指明其在主存中所处的开始位置 若未装入主存 则应到辅存中去调段或页 并建立起程序空间和实存空间的地址映象关系 这样 程序执行时通过查映象表 将程序 虚 地址变成主存地址再访问主存 由于采用的存储映象算法不同 形成了多种不同的存储器管理方式的虚拟存储器 其中主要有段式 页式 段页式三种 页式虚拟存储器 页式虚拟存储器是以页为信息传送单位的虚拟存储器 也就是说 在这种虚拟存储器中 不论是虚拟空间 还是主存空间都被分成大小相等的页 称为页面 页式虚拟存储器 以固定大小的页面为单位 页式虚拟存储器 逻辑页 虚存空间 虚拟地址分为两个字段 高位字段为逻辑页号低位字段为页内行地址物理页 主存空间 主存地址也分为两个字段 高位字段为物理页号低位字段为页内行地址页面大小都是相等的 所以页内行地址 位数 是相等的 页式虚拟存储器 页式虚拟存储器 CPU访问主存时送出的是程序虚地址 计算机必须判断该地址的存储内容是否已在主存里 如果不在的话 则需要将所在页的内容按存储管理软件的规定调入指定的主存页后才能被CPU执行 如果在的话 则需找出主存在哪一页 为此 通常需要建立一张虚地址页号与实地址页号的对照表 记录程序的虚页面调入主存时被安排在主存中的位置 这张表叫页表 页式虚拟存储器 页表 页式虚拟存储器 页表内按虚页号顺序排列 页表的长度等于该程序虚页数 每一虚页的状况占据页表中一个存储字 叫页表信息字 页式虚拟存储器 页表信息字主要内容有 装入位 是1时表示该页面内容已经从辅存调入主存 页面有效 0则相反 页面无效 主存中尚未调入这一页 修改位 记录虚页内容在主存中是否修改过 如果修改过 则在这页主存被新页覆盖时要把修改的内容写回到虚存去 替换控制位 与替换策略有关 可以用作计数位 记录这页在主存被CPU调用的历史 反映这页在主存的活跃程度 实页号 指示管理软件将该虚页分配在主存的位置 实地址页号 页式虚拟存储器 每个程序都有一张页表存放在主存 每张页表都有一个页表起始地址 程序投入运行时 由存储管理软件把这个程序的页表起始地址读到页表基址寄存器 CPU送来的是程序虚地址 必须首先进行虚 实地址的变换工作 页式虚拟存储器 页式虚拟存储器 基地址寄存器内容和地址虚页号拼接成页表索引地址 页表索引地址是该虚页的页表信息字在页表的地址 根据页表索引地址就读到页表信息字 检测页表信息字装入位的状态 装入位若等于1 表示页面有效 虚页内容已经存储在主存里 就进行 的操作 将信息字中的实页号取出作为实地址的高位地址 而虚地址的页内地址部分作为实地址的低位地址 两者拼接完成完整的实地址 CPU以此实地址访问主存 如果检测到装入位是0状态 说明对应的虚页还没有调入主存 于是计算机采取措施启动输入输出系统 把虚地址指示的一页内容从辅存调入实存空间再提供CPU访问 页式虚拟存储器 页表在主存中的地址由页表寄存器指出 页式虚拟存储器 页式管理的优缺点优点主存储器的利用率比较高 页面的起点和终点地址是固定的 方便造页表 新页调入主存也很容易掌握 地址变换的速度快 页表项简单 查找速度快 对磁盘的管理比较容易 页式虚拟存储器 缺点程序的模块化性能不好 由于页长度固定 程序不可能正好是页面的整数倍 因此最后一页的零头无法利用而造成浪费 页式管理在存储空间较大时 由于页表过大 效率降低 页表很长 需要占用很大的存储空间 页式虚拟存储器 注意 虚页内容若没有调入主存 则计算机启动输入输出系统 把虚地址指示的一页内容从辅存调入主存 再提供CPU访问 虚地址和辅存地址不是一回事 程序员按虚存空间编址 虚地址由虚页号和页内地址组成 辅存实际地址以磁盘为例 地址由磁盘机号 磁头号 柱面号 块号 块内地址组成 因此从辅存调页时还需要虚存地址空间到辅存地址的变换 这个变换也可以采用类似前述页表的方式 称外页表 段式虚拟存储器 现在程序编址大都采用模块化设计方法 一个复杂的程序按其逻辑功能分解成一系列相互关联且功能独立的简单模块 一个程序的执行过程即是从一个功能模块转到另一个功能模块执行的过程 段式虚拟存储器存储空间不是机械地按固定长度的页划分 而是随程序的逻辑结构而定 每一段即是一个程序过程模块或一个子程序或一个数组 一张表格等 程序员把所需的段连接起来就组成一个完整的程序 显然每一段长度不相等 段式虚拟存储器 程序在虚拟空间编址 段地址装入主存的任意位置 段虚地址向实地址的映像关系需要有一张段表指示 段表放在主存 主要内容有段号 段起点 装入位 段长等 段式虚拟存储器 段号是程序分段的序号 也是段功能名称的代号 一般有其程序上的逻辑含义 相邻段并非一定是顺序执行的段号 段起点指明该段将在实存空间的起始位置 装入位的含义与页表相同 当1时表示此段已装入主存 0表示尚未装入 段长指出段程序模块的长度以便到实存选择合适的定位空间 此外 段表同样由存储管理软件设置 地址变换时从段表取到段的实存起始地址 再与原虚存中段内地址部分相结合形成主存的实地址 段式虚拟存储器 段式虚拟存储器虚实地址转换 段式虚拟存储器 段式虚拟存储器的优缺点 优点 因段与程序功能模块相对应 模块可以独立编址 使得大程序编址可以多人分段并行工作 它比不分段页从头到尾的编程方法要节省很多时间 程序可以分段调试 目标明确思路清晰 容易检查错误 段修改 增删时对其他段不产生影响 程序按逻辑功能分段 各有段名 便于程序段公用且按段调度可以提高命中率 段式虚拟存储器 缺点 由于段虚拟存储器每段占据的存储空间较大 且长度各不相等 所以虚页调往主存时 主存空间的分配工作比较复杂 段与段之间的存储空间常常不好利用而造成浪费 段表中地址字段和段长字段较长 降低查表速度 段页式存储器 在段式 页式虚拟存储器的基础上 设计人员推出段页式虚拟存储器结构 段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合 它把程序按逻辑单位分段以后 再把每段分成固定大小的页 程序对主存的调入调出是按页面进行的 但它又可以按段实现共享和保护 兼备页式和段式的优点 是一种较好的虚拟存储体系结构 缺点是在映象过程中需要

温馨提示

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

评论

0/150

提交评论