第五章虚拟存储器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关键点: 关键点: 地址空间 (编程) 逻辑 交换 o.s 存贮空间 (运行) 物理
虚空间(虚存)
实存、实空间
程序的访问地址称为虚地址而程序可访问的虚 地址范围叫做程序的虚地址空间。 可使用的实地址范围叫实地址空间(即主存) 在多道程序运行环境下,o.s把实际内存扩充 成若干个虚存系统为每个用户建立一个虚拟存 贮器,各用户可独立在虚存上编程运行。
(ii) 先进先出算法(FIFO) 例:设页面请求次序 7.0.1.2.0.3.0.4.2.3.0.3.2.1.2.存贮块为3时 (驻留集为3)
查页表-物理地址(访问二次主存)
例:设访问主存时间为200ns,访问联想存贮器为40ns, 命中率为90%,则平均存贮时间为多少? 解: 方法 : 方法1: 查页表两次访存:平均为200+200=400ns 方法2: 方法 : 查块表(200+40)×90%+(200+200)×10%=256ns
(d) 快表 联想存贮器 快表(联想存贮器 联想存贮器) 访问主存=访页表+ 访问主存=访页表+访主存 (若页表全部放在主存,则要取一个数据 (一条指令)至少要访问二次主存,第一次是访 ( ) 问页表,确定所取数据(或指令)的物理地址, 第二次是根据该地址取数(或指令)) 将作业中最常用的页块号置入高速缓存, 提高查表速度(在地址变换机构中加入一个高速、 不容易的联想存储器)
(c) 置换算法 ––– 确定淘汰哪一页的策略 系统抖动 ––– 内外存交换频繁使效率下降(导 致系统效率急剧下降的主、辅 存之间的频繁转换现象) 驻留集 ––– 驻留在内存中页面的集合。
F (不成功的访问次数) 失败 缺页中断率= = S (成功的访问次数)+F 成功+失败
启动要处理的指令
指 令 执 行 和 缺 页 中 断 处 理 硬件 软件
1、先进先出算法(FIFO)
FIFO算法维护一个先进先出队列,队列长度为分 配给这个进程的页面数M。开始时队列是空的,装入 进程的第一页即可启动运行,当访问到某个不在内存 的页面时,把它从辅存调入,加入FIFO队列的尾部。 优点:简单 缺点:是在有的情况下,给进程的页面数M增加时,同 样的页面序列P,缺页率反而增加——FIFO异常 注意:当某个页面刚被淘汰又要调入时容易产生这种 现象。
2、 局部性原理
只有不要求程序全部装入内存就能 运行,才能运行超过主存容量的大程序, 才能支持更多程序并发执行。这就是实 现虚拟存储器的局部性原理基础。 分析程序行为将发现,指令一般顺序执 行,或转向到某个分支,某个函数执行, 或者执行一个循环,访问一个数组,栈 操作,体现出在一小段时间内访问内存 的局部性。
(d) 制约: 制约: (i) 主存、辅存必须有一定量 (ii) 指令的地址或长度一定(受制约) (iii) 要有地址的交换机构
(e) 虚存管理三大策略:调入策略(把哪部分装 虚存管理三大策略: 把哪部分装
放在主存什么地方) 入主存) 放在主存什么地方 入主存 , 放置策略 (放在主存什么地方 , 淘
1、 分级存储体系
计算机系统一般采用存储程序的方式,CPU 执行的 指令必须放在内存,指令执行过程中要访问的数据也 必须在内存。 为了允许用户的作业地址空间大于实地址空间,尤其 是允许许多用户共享实存储资源去有效地并发运行, 则通常用两级存储方案实现。 第一级是主存,进程在主存中运行,在主存中的数据 是运行进程要访问的。第二级是辅助存储器:由像磁 盘、光盘那样的大容量存储介质组成,它们有能力装 入有限主存不能同时装入的程序和数据。
页目录号 页目录
虚拟地址 页表号
物理地址空间 页内地址 页表 页表号
页目录号 页目录地址
(2) 分页存贮管理: 分页存贮管理: (a) 实现原理: 实现原理: 地址空间分成大小相同的部分 ––– 页 存贮空间分成大小相同的部分 ––– 块(页架) 页大小= 页大小=块大小
页表结构:
存在位表示该页是否在主存,为“0”表示该页不 在主存;为“1”表示该页在主存; 访问位表示该页面最近是否被CPU访问过,为“0” 表示该页面未被访问过,为“1”表示该页面最近被访问 过; 修改位表示该页内容是否被修改过,为“0”表示该 页面中的数据未被修改过,为“1”表示该页面中的数据 已被修改过。
移动或调 出分段
调整S段段表及主 存分配表Baidu Nhomakorabea
重新启动指令
请求分段虚拟存储管理实 现分段的共享和保护
段共享表 段的共享 段的保护
5.2.2缺页中断处理过程
通常情况下,每条指令均由硬件自动完成。 CPU 按照程序计数器的内容逐条地执行内存 中的程序指令,直到一个程序终了。 一旦某条指令执行时访问到一个不在内存的 数据地址,比如读写数据,取指令,执行转 移等,便涉及到一个不在内存的页,中断机 构将产生一次缺页中断。 中断硬件在做了保留现场等工作后,将启动 操作系统缺页中断处理程序。
存放页表部分内容的快速存贮器称为 联想存贮器,联想存贮器中存放的部分页表 称为“ 快表”。联想存贮器一般由8~16个 单元组成,它们用来存放正在运行进程的当 前最常用的页号和相应的块号,并具有并行 查寻能力。
这个联想存贮器的查表速度可以做到比一般 存储器的速度快一个数量级。 有 效 地 址 查联想表-物理地址(访问一次主存) 同 时 进 行
虚拟存储器
实例:分页式虚拟存储器技术是使用最为广泛的一种。
5.2.1请页式存储管理
1、对页式存储技术的改进
请页式存储管理继承了分页管理的全部技术, 又增加了一些新内容:
(1)为每个作业分配内存时,先只将当前需要的一部 分页面装入内存即启动程序运行; (2)设置缺页中断机制,在作业运行中,当访问到不 在内存的页面时,便发生缺页中断,把控制转向操作系 统; (3)操作系统增设缺页中断处理程序,操作系统判明 中断原因是缺页,则到辅存上找到该页,并把它调入内 存。 (4)扩充了页表。请页式存储管理所用的页表,其中 包括三个标识位:存在位,访问位和修改位。
给出虚地址 形成页号 该页在主存 准备执行下条指令
Y
执行完该指令
N
缺页中断 有空闲块
N
选一页淘汰 调整存贮分块表和页表
Y
从外存读入需要的页
N
调整存贮分块表和页表 重新启动被中断的指令
要重新写入
Y
该页写入外存
由硬件和软件相配合实现的,虚线上面部 分是由硬件实现的,而下部是由软件实现的。 在多进程环境下,一个进程在等待传输页 面时,它处于阻塞态,此时系统可以调度另一 进程运行,当传输完成时,唤醒原先被阻塞的 那个进程,等到下次再调度到它时,才能恢复 到断点,继续运行下去。
5.2.3工作集概念
工作集模型————每个进程在任何一个时间段△t, 都存在一个页面子集H(t),其中包含了进程当前需 要频繁访问的一组页面。 根据局部性原理,这个子集不会很大。但是如果这个 子集不全部在内存,将会发生频繁的调页。这个子集 就称为该进程在时刻t的工作集。 页式虚拟存储管理系统分给进程的页框数M是变动的, 保持进程的工作集在内存中,实际系统中,它恰好能 够容纳当时的工作集。
例:设虚地址为(357101)8 每一块为128字节 128=27 (357101)8=(011, 101, 111, 00 1, 000, 001)2 1 偏移为(101)8, 6 7 4 1 0 1
页号为(1674)8
块号由页表指定,偏移不变
快表(associative storage)
快表也被称为联想存储器,它是 一种高速存储体,每一项中有两个关键 部分:关键字、值。
局部性意味着在一段时间内只要一部分 程序及访问的数据在内存就行了。当需 要访问新地址空间时再从辅存把包含新 局部的部分调入,就可以陆续把一个大 程序运行完。
5.2虚拟存储器
计算机系统中主存的大小总是有限的。为了给其地址 空间超过主存容量的作业的运行提供方便,由操作系统 把两级存储器(主存和辅存)统一管理,实现主存的扩 充,使得大于主存容量的作业地址空间以及作业地址空 间的组合,都能获得一个假想的虚拟的主存使用,称之 为虚拟存储器。 虚拟存储器的容量由计算机的地址结构决定,其最大容 量受计算机的主存,辅存容量之和的限制。 虚拟存储器实际上是给用户提供了一个大的地址空间, 或者说是给程序员提供了一个远远大于主存容量的编址 范围。
返回
局部性原理的具体体现
– 程序在执行时,大部分是顺序执行的指令,少部 分是转移和过程调用指令。 – 过程调用的嵌套深度一般不超过5,因此执行的 范围不超过这组嵌套的过程。 – 程序中存在相当多的循环结构,它们由少量指令 组成,而被多次执行。 – 程序中存在相当多对一定数据结构的操作,如数 组操作,往往局限在较小范围内。
汰策略(主存不足时,把哪部分淘汰出主存。) 主存不足时, 主存不足时 把哪部分淘汰出主存。
(f)虚存容量由计算机的地址结构决定 , 其最 虚存容量由计算机的地址结构决定, 虚存容量由计算机的地址结构决定
大容量受计算机的主存、辅存容量之和限制。 大容量受计算机的主存、辅存容量之和限制。
5.1虚拟存储器概念
6.6.1 局部性原理
局部性原理(principle of locality):指程序在执 行过程中的一个较短时期,所执行的指令地 址和指令的操作数地址,分别局限于一定区 域。具体表现为:
– 时间局部性:一条指令的一次执行和下次执行, 一个数据的一次访问和下次访问都集中在一个较 短时期内; – 空间局部性:当前指令和邻近的几条指令,当前 访问的数据和邻近的数据都集中在一个较小区域 内。
请 求 分 段 虚 存 管 理 的 地 址 转 换
是 S段在内存 否 发越界中断 B<S段长度 否 发保护中断 是 符合存取权限 是
否 发缺段中断
形成绝对地址 继续执行指令 硬件 操作系统
非法存取 否 S段可扩充 是 S段末端相邻空 闲区长度满足 要求 是 否 地址错
移动或调 出分段

主存中有满足S段 长度的连续空闲区 是 装入S段
请求分页虚存地址转换过程
逻辑地址 无登记 查快表 在辅存 查页表 发缺页中断 登记入快表 在主存 形成绝对地址 继续执行指令 硬件 有登记
保护现场 无 主存有空闲块 有 装入所需页面 调整页表和 主存分配表 恢复现场 重新执行 被中断指令
操作系统
选择调出页面 未修改 该页是否修改 已修改 把该页写回 辅存相应位置
主讲:刘 拥 民
Lym37212004@163.com
五、虚拟存储器
两级存储统一管理的虚拟存储器 思想,可以支持用户编写超出主存容 量的更大程序。 使计算机给用户提供的虚拟地址 空间,远远大于实际配置的主存容量。
虚拟存贮管理 (Virtual storage)
(1) 虚拟存贮器的概念 (a) 在实存管理技术中(除覆盖、交换 ,要求整 除覆盖、 除覆盖 交换) 个作业必须装入主存 作业尺寸>主存大小⇒作业无法运行 “ 扩充”主存 ––– 虚拟存贮技术 (b) 虚拟存贮器: 虚拟存贮器:
分级存储体系结构
在CPU和内存之间,还有Cache,也是能够存取和运 行CPU指令的地方,其存取速度比内存高。辅存只能 做“仓库”用,而不能像内存那样作为CPU直接识 别的工作场所。(三级结构) 数据和指令只能以块为单位被存放其上,而存放的指 令和数据也只能以块为单位被再读至内存后才能被 CPU识别。 辅存的存取速度也没有内存快。但是辅存容量大,可 以长期存储。主存与辅存统一组成计算机存储体系。
(c) 虚空间独立于实空间 虚空间>>实空间(也可以虚空间<实空间) 系统地址空间 ––– 虚存空间 地址结构cpu 20位有效地址长度 ––– 0~220(寻址范围), 实存64k<虚存220作业可以大于内存,部分作业 调入运行,其余放入磁盘。 利用辅存存放放不进内存的作业部分。 主存+辅存≠虚拟存(仅与地址结构有关)
5.3页面淘汰算法
淘汰——当要访问的页面在外存而不在内存时,需
要将其调入内存。如果此时内存中无空闲页面,则需 将内存中某一页面淘汰掉。 用来选择被淘汰页面的算法称作淘汰算法。衡量算法 优劣的测度是页面淘汰率: f = F / P 其中P为进程的页面序列,|P|为总页面数,F为在|P| 次访问中缺页次数。显然,f依赖于P以及分给该进程 的页面数M。f越小,算法的性能越好。
相关文档
最新文档