第五章 虚拟存储器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
5.1.1 常规存储管理方式的特征和局部性原理 1. 常规存储器管理方式的特征 我们把前一章中所介绍的各种存储器管理方 式统称为传统存储器管理方式,它们全都具有如 下两个共同的特征: (1) 一次性 (2) 驻留性
4
2. 局部性原理 程序运行时存在的局部性现象,很早就已被 人发现,但直到1968年,P.Denning才真正指出 :程序在执行时将呈现出局部性规律,即在一较 短的时间内,程序的执行仅局限于某个部分,相 应地,它所访问的存储空间也局限于某个区域。
14
15
5.2.2 请求分页中的内存分配
1. 最小物理块数的确定 一个显而易见的事实是,随着为每个进程所分配的物理块的 减少,将使进程在执行中的缺页率上升,从而会降低进程 的执行速度。为使进程能有效地工作,应为它分配一定数 目的物理块。 2. 内存分配策略 在请求分页系统中,可采取两种内存分配策略,即固定和 可变分配策略。在进行置换时,也可采取两种策略,即全 局置换和局部置换。 3. 物理块分配算法 在采用固定分配策略时, 可采用平均分配算法和按 比例分配算法。
第5章 虚拟存储器
5.1 虚拟存储器概述
Βιβλιοθήκη Baidu
5.2 请求分页存储管理方式
5.3 页面置换算法 5.4 “抖动”与工作集 5.5 请求分段存储管理方式 习题
2
5.1 虚拟存储器概述
第四章所介绍的各种存储器管理方式有一个共 同的特点,即它们都要求将一个作业全部装入内存 后方能运行。于是,出现了下面这样两种情况: (1) 有的作业很大,其所要求的内存空间超过了 内存总容量,作业不能全部被装入内存,致使该作 业无法运行; (2) 有大量作业要求运行,但由于内存容量不足 以容纳所有这些作业,只能将少数作业装入内存让 它们先运行,而将其它大量的作业留在外存上等待 。
6
3. 虚拟存储器的基本工作情况 基于局部性原理可知,应用程序在运行之前 没有必要将之全部装入内存,而仅须将那些当前 要运行的少数页面或段先装入内存便可运行,其 余部分暂留在盘上。
7
5.1.2 虚拟存储器的定义和特征
1. 虚拟存储器的定义 当用户看到自己的程序能在系统中正常运行 时,他会认为,该系统所具有的内存容量一定比 自己的程序大,或者说,用户所感觉到的内存容 量会比实际内存容量大得多。但用户所看到的大 容量只是一种错觉,是虚的,故人们把这样的存 储器称为虚拟存储器。
下一页
FIFO算法性能分析(m=3)
从图可以看出,缺页中断页数为9次,缺页率f=9/12=75%。 下一页
【例 2】设 m=4,仍采用 FIFO算法,缺页中断次 数及缺页率如图所示。
下一页
可以算出,在分配给该作业的内存块数增加到4时, 缺页中断由图的9次反而增加到了10次,缺页率由 75%增加到 10/12=83%,这就是 FIFO算法的一种 异常现象。随着分配的主存块数的增加,缺页中 断次数不但没有降低,反而增加了。这与该算法 定全不考虑程序的动态特征有关。
16
5.2.3 页面调入策略
为使进程能够正常运行,必须事先将要执行的 那部分程序和数据所在的页面调入内存。现在的 问题是: (1) 系统应在何时调入所需页面; (2) 系统应从何处调入这些页面; (3) 是如何进行调入的。
17
1. 何时调入页面 (1) 预调页策略。 (2) 请求调页策略。 当进程在运行过程中需要访问某部分程序和数 据时,若发现其所在的页面不在内存,便立即提 出请求,由OS将其所需页面调入内存。由请求调 页策略所确定的页是一定会被访问 的,再加之请 求调页策略比较易于实现,故在目前 的虚拟存储 器中,大多采用该策略。
1. 最佳置换算法 2. 先进先出置换算法 3. LRU(最近最少使用)置换算法 4.最少使用算法 5.Clock算法
21
1. 最佳(Optimal)置换算法 最佳置换算法是由Belady于1966年提出的一种理 论上的算法。其所选择的被淘汰页面将是以后永 不使用的,或许是在最长(未来)时间内不再被访 问的页面。采用最佳置换算法通常可保证获得最 低的缺页率。但由于人们目前还无法预知,一个 进程在内存的若干个页面中,哪一个页面是未来 最长时间内不再被访问的,因而该算法是无法实 现的,但可以利用该算法去评价其它算法。
18
2. 缺页率 假设一个进程的逻辑空间为n页,系统为其 分配的内存物理块数为m(m≤n)。如果在进程的 运行过程中,访问页面成功(即所访问页面在内存 中)的次数为S,访问页面失败(即所访问页面不在 内存中,需要从外存调入)的次数为F,则该进程 总的页面访问次数为A = S + F,那么该进程在其 运行过程中的缺页率即为
页号 物理块号 状态位 P 访问字段 A 修改位 M 外存地址
2. 缺页中断机构 (1) 在指令执行期间产生和处理中断信号。 (2) 一条指令在执行期间可能产生多次缺页中断 。
13
3. 地址变换机构 请求分页系统中的地址变换机构是在分页系 统地址变换机构的基础上,为实现虚拟存储器, 再增加了某些功能所形成的,如产生和处理缺页 中断,以及从内存中换出一页的功能等等。
3.最近最久未使用页面置换算法 (LRU——Least Recently Used算法)
这种算法的基本思想是,如果某一页被访问了,那么它很 可能马上又被访问;反之,如果某一页很长时间没有被访 问,那么最近也不太可能会被访问。这种算法考虑了程序 设计的局部性原理。其实质是,当需要置换一页时,选择 在最近一段时间最久未使用的页面予以淘汰。 实现这种算法可通过周期性地对“引用位”进行检查,并利 用它来记录一页面自上次被访问以来所经历的时间t,淘 汰时选择t最大的页面。
5.5 请求分段存储管理方式
5.5.1 请求分段中的硬件支持 为了实现请求分段式存储管理,应在系统中 配置多种硬件机构,以支持快速地完成请求分段 功能。 1. 请求段表机制
段名 段长
段基址 存取方式 访问字段 A 修改位 M 存在位 P 增补位
外存始址
34
2. 缺段中断机构
35
习题
1、在请求页式存储管理中,若所需页面不在内存中,则会引起 ( ). A,输入输出中断 B,时钟中断 C,越界中断 D,缺页中断 2、在请求分页系统中,LRU算法是指( ). A,最早进入内存的页先淘汰 B,近期最长时间以来没被访问的页先淘汰 C,近期被访问次数最少的页先淘汰 D,以后再也不用的页先淘汰 3、请求分页存储管理中,若把作业使用的页面数增加一倍,在 程序顺序执行时,则缺页中断次数会( ). A,增加 B,减少 C,不变 D,可能增加也可能减少
10
5.1.3 虚拟存储器的实现方法
1. 分页请求系统 2. 请求分段系统
11
5.2
5.2.1
请求分页存储管理方式
请求分页中的硬件支持 为了实现请求分页,系统必须提供一定的硬 件支持。计算机系统除了要求一定容量的内存和 外存外,还需要有请求页表机制、缺页中断机构 以及地址变换机构。
12
1. 请求页表机制 在请求分页系统中的每个页表应含以下诸项:
36
4、系统抖动是指( ). A,使用机器时,千万屏幕闪烁的现象 B,刚被调出的页面又立刻被调入所形成的频繁调 入调出现象 C,系统盘不净,千万系统不稳定的现象 D,由于内存分配不当,偶然造成内存不够的现象 5、在( )中,不可能产生系统抖动的现象. A,固定分区管理 B,请求页式管理 C,段式管理 D,机器中不存在病毒时
8
所谓虚拟存储器,是指具有请求调入功能和置换功 能,对内外存统一管理,能从逻辑上对内存容量 加以扩充的一种存储器系统。从用户角度上看, 系统具备了比实际内存容量大得多的存储器,人 们把这样的存储器称为虚拟存储器。
2. 虚拟存储器的特征 与传统的存储器管理方式比较,虚拟存储器 具有以下三个重要特征: (1) 多次性。 (2) 对换性。 (3) 虚拟性。
37
F f A
19
5.3 页面置换算法
在进程运行过程中,若其所要访问的页面不在内存 ,而需把它们调入内存,但内存已无空闲空间时 ,为了保证该进程能正常运行,系统必须从内存 中调出一页程序或数据送到磁盘的对换区中。但 应将哪个页面调出,须根据一定的算法来确定。 通常,把选择换出页面的算法称为页面置换算法
22
2.先进先出算法(FIFO算法) 这种算法的基本思想是:总是先淘汰那些驻留在内 存时间最长的页,即先进入内存的页先被置换掉 。理由是:最先进入内存的页不再被访问的可能 性最大。
下一页
图5-4 利用FIFO置换算法时的置换图
24
【例 1】主存块数 m=3 ,置换算法采用 FIFO 算法, 缺页中断次数及缺页率如图所示。 在图中,P行表示页面走向,M行表示在主存中的 页面号,其中带有+的表示新调入页面,在M行的 各列按调入的顺序排列,带有圆圈的数字表示下 一时刻将被淘汰页面,F行表示是否引起缺页中 断,带√号的表示引起缺页中断。
下一页
图5-5
LRU页面置换算法
30
【例 3】设 m=3 ,采用 LRU 算法,缺页中断次数 及缺页率如图所示。
缺页率: 10/12=83% 下一页
【例4】设m=4,其余同例3,则缺页中断次数及 缺页率如图所示。
缺页率:7/12=58%
返回本节
练习
如果一个作业在执行过程中,按下列的页号依 次访问主存:1,2,3,4,2,1,5,6,2,1, 2,3,7,6,3,2,1,2,3,6。作业固定占 用 4 个内存页面(块),试问分别采用FIFO、LRU 算法时,各产生多少次缺页中断?并计算相应的 缺页中断率,并图示访问示意图。
5
局限性又表现在下述两个方面: (1) 时间局限性。 如果程序中的某条指令一旦执行,则不久的将来该指令可能 再次被执行;如果某个存储单元被访问,则不久以后该存储 单元可能再次被访问。产生时间局限性的典型原因是在程序 中存在着大量的循环操作。 (2) 空间局限性。 一旦程序访问了某个存储单元,则在不久的将来,其附近的 存储单元也最有可能被访问。 即程序在一段时间内所访问 的地址,可能集中在一定的范围内,其典型原因是程序是顺 序执行的。
相关文档
最新文档