《5.5虚拟存储器1.pdf》由会员分享,可在线阅读,更多相关《5.5虚拟存储器1.pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、理理 原原 成成 组组 在线开放课程 计算机 虚拟存储器 01 目 录 CATALOG 虚拟存储器 的基本概念 虚拟存储器虚 实地址变换 替换算法 01 02 03 博学 日新 明德 笃行 虚拟存储器的基本概念 1、什么是虚拟存储器 虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际 的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或 更多的程序所使用。 虚拟存储器不仅是解决存储容量和速度的矛盾的一种方法,而且也是管理 存储设备的有效方法。有了虚拟存储器,用户无需考虑所编程程序在主存中 是否放得下或放在什么位置等问题。 博学 日新 明德 笃行 虚拟存储器的基本概念 2
2、、虚拟地址 虚拟存储器为用户提供了一个比实际主存空间大得多的程序地址空间。此 时程序的逻辑地址称为虚拟地址(虚地址)。 相对应的物理地址(又称实地址)是CPU地址引脚送出的,用于访问主存的 地址。 虚拟地址是由编译程序生成的。工作在虚拟地址模式下的CPU理解这些虚拟 地址,并将他们转换为物理地址。 实际上,虚拟存储器的内容是要保存在磁盘上的,因此虚拟地址空间的大小 受辅助存储器容量的限制。 博学 日新 明德 笃行 虚拟存储器的基本概念 3、虚拟存储器的工作原理 从原理上看,主存外存层次和cache主存层次有很多相似之处,他们都 是基于程序局部性原理,把程序最近常用的部分驻留在高速的存储器中;一
3、旦 这部分不常用了,就送回到低速存储器中;这种换入换出是由硬件或操作系统 完成,无需用户干预;最终达到使存储系统的性能接近高速存储器,而价格接 近低速存储器。他们采用的地址映射和替换策略,从原理上看也是相同的。但 是由于磁盘的存取速度是主存的上千倍,而cache的存取速度是主存的510倍, 因此在虚拟存储器中未命中的性能损失要远大于cache系统中的损失。 博学 日新 明德 笃行 虚拟存储器的基本概念 主存外存层次的基本信息传送单位可采用几种不同的方案:段、页或段页。 1.段及段式管理 (1)什么是段 利用程序的模块化性质,按照程序的逻辑结构划分成的多个相对独立部分。 如过程、子程序、数据表、
4、阵列等。 特点:作为独立的逻辑单位可以被其他程序调用,以形成规模较大的程序。 因此用段作为主存外存之间传送和定位的基本单位是合理的。 博学 日新 明德 笃行 虚拟存储器的基本概念 (2)段表 用来指明各段在主存中的位置而在 主存中建立的一个表。 每段都有它的名称(用户名或数据 结构名或段号)、段在主存中的起点、 段长及装入位等控制信息,段表就是 虚拟存储器中各段的上述信息的表。 例:图示。 段表本身也是一个可以再定位的段。 可以放在外存,需要时调入主存,不 过一般都驻留内存。 博学 日新 明德 笃行 虚拟存储器的基本概念 (3)段式管理 把主存按段分配的存储管理方式称为段式管理。 优点:段的分
5、界与程序的自然分界相对应;段的逻辑独立性使它易于编译、 管理、修改和保护,也便于多道程序共享;某些类型的段(堆栈、队列)具 有动态可变长度,允许自由调度以便有效利用主存空间。 缺点:由于段的长度各不相同,段的起点和终点不定,给主存空间分配带 来麻烦,而且很容易在段间留下许多空余的零碎空间不好利用,造成主存空 间的浪费。 博学 日新 明德 笃行 虚拟存储器的基本概念 2、页及页式管理 (1)页:将存储器的空间划分为具有定长的区域。 主存实页(物理页),虚存虚页(逻辑页)。 (2)页表:用来指明外存各页在主存中的位置。 由于页的长度是固定的,页表中只需存放虚页号、实页号和装入位等控制信息 三部分。
6、 (3)页式管理:主存与虚存之间以页为基本信息传送单位的存储器管理方式。 优点:比段式管理浪费的零碎空间少。(一段含多页)。 缺点:页在逻辑上不独立,在处理、保护和共享等方面不如段式管理方便。 博学 日新 明德 笃行 虚拟存储器的基本概念 3、段页式管理 程序按模块分段,段内再分页,进入主存以页为基本信息传送单位,用段 表和页表(每段一个页表)两级定位管理的方式进行存储器管理。 博学 日新 明德 笃行 虚拟存储器虚实地址变换 虚拟地址是在程序被编译时由编译程序生成的,CPU是如何根据虚拟地址形成 主存的实地址,以访问主存。对于不同的管理方式,其变换过程不同,下面分别 介绍各种管理方式下主存的地
7、址的形成。 博学 日新 明德 笃行 虚拟存储器虚实地址变换 页式虚拟存储器地址变换:页式管理下的虚实地址的变换是通过页表实现的。 页面基地址 逻辑页号 页内行地址 物理页号 页内行地址 页表基址寄存器 虚存地址 实存地址 + 页表(在主存中) 有效位 主存页面号 页式虚拟存储器的地址映射过程 博学 日新 明德 笃行 虚拟存储器虚实地址变换 经快表和慢表实现的地址变换: 快表:由于访问存储器时,无论要访问的页是否已装入内存,都要先查页表, 也就是说,访问存储器最少要访问两次主存,这就相当于主存速度降低一倍。 因此,把页表中最活跃的部分放在高速存储器中组成快表,减少时间开销。 当然快表只是原来主存
8、中的页表(称为慢表)的一小部分。 采用快表和慢表的地址变换:查表时,根据逻辑页同时去查快表和慢表,若 在快表中查到,就将慢表查找操作作废;若快表中查不到,就要通过查慢表 获得主存的页号,同时将此逻辑页号和对应的物理页号送入快表,以备下次 访问。其地址变换如下图3.43所示。 博学 日新 明德 笃行 虚拟存储器虚实地址变换 经快表和慢表实现的地址变换: 控制位物理页号 控制位物理页号 (快表中查不到) 物理页号页内行地址 物理页号逻辑页号 物理页号逻辑页号 逻辑页号页内行地址 慢表(在主存中) 相联 比较 快表 (相联存储器) 虚存地址 实存地址 按地址访问 (按内容访问) 图3.43 经快表和
9、慢表实现地址变换 博学 日新 明德 笃行 虚拟存储器虚实地址变换 段式管理方式下的地址变换 段式管理下的虚实地址的变换是通过段表实现的。其变换过程如图所示。 博学 日新 明德 笃行 虚拟存储器虚实地址变换 段式管理方式下的地址变换 段表基地址 段号 段内地址 主存地址 段表基址寄存器 虚存地址 实存地址 + 段表(在主存中) + 段起址 装入位 段长 段号 博学 日新 明德 笃行 虚拟存储器虚实地址变换 段页式管理方式下的地址变换 在段页式虚拟存储系统中,每道程序是通过一个段表和一组页表来进行 定位的。 段表中每个表目对应一个段,每个表目有一个指向该段的页表起始地址 (页号)及该段的控制保护信
10、息。由页表指明该段各页在主存中的位置以及 是否装入、已修改等状态信息。 计算机一般都采用段页式存储管理方式。 博学 日新 明德 笃行 虚拟存储器虚实地址变换 段页式存储管理方式的虚拟地址格式: 其中:基号是对于多道程序在机器上运行时,每道程序都设置的一个标志号。 一个示例: (说明段页式虚拟存储器地址变换过程)。 【例】假设有三道程序(用户标记号为A,B,C),在主存中,每道程序都 有一个段表,A程序有4段,C程序有3段。每段有一个页表,段表的每行有相 应页表的起始位置,而页表的每行中有相应的物理页号。设其基址寄存器内容 分别为Sa,Sb,Sc,试说明虚实地址的变换过程。 逻辑地址到物理地址的
11、变换过程如图3.45所示。 基号基号 段号段号 页号页号 页页 内内 地地 址址 博学 日新 明德 笃行 虚拟存储器虚实地址变换 博学 日新 明德 笃行 替换算法 当CPU用到的数据或指令不在主存时,产生页面失效中断,此时要从外存中 调入。假如主存页面已经占满,如何替换? 虚拟存储器的页面替换策略与cache中的行替换策略三点显著不同:(1)缺 页至少要涉及一次磁盘存取,因此缺页使系统受的损失比cache未命中大得 多。(2)页面替换由操作系统软件来完成。(3)页面替换的选择余地大, 属于一个进程的页面都可替换。为了以较多的CPU时间和硬件为代价换取更 高的命中率,虚拟存储器中的替换策略一般采
12、用LRU算法、LFU算法、FIFO 算法,或将两种算法结合起来。 博学 日新 明德 笃行 替换算法 通过例子说明几种算法的概念和效率。 P120【例7】假设主存只有a,b,c三个页框,组成a进c出的FIFO队列,进程 访问页面的序列是0,1,2,4,2,3,0,2,1,3,2号。用列表法分别求出 FIFO算法和FIFO+LRU算法下的命中率。 解:FIFO+LRU算法:当某页命中后,不再保持队列不变,而是将这个命中 的页面移到a页框。 博学 日新 明德 笃行 替换算法 页面访问序列页面访问序列 0 0 1 1 2 2 4 4 2 2 3 3 0 0 2 2 1 1 3 3 2 2 命中率命中率
13、 FIFOFIFO算法算法 a a 0 0 1 1 2 2 4 4 4 4 3 3 0 0 2 2 1 1 3 3 3 3 2/11=18.22/11=18.2 b b 0 0 1 1 2 2 2 2 4 4 3 3 0 0 2 2 1 1 1 1 c c 0 0 1 1 1 1 2 2 4 4 3 3 0 0 2 2 2 2 中中 中中 FIFOFIFO算法算法 +LRU+LRU算法算法 a a 0 0 1 1 2 2 4 4 2 2 3 3 0 0 2 2 1 1 3 3 2 2 3/11=27.33/11=27.3 b b 0 0 1 1 2 2 4 4 2 2 3 3 0 0 2 2 1 1 3 3 c c 0 0 1 1 1 1 4 4 2 2 3 3 0 0 2 2 1 1 中中 中中 中中