--请求分页

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

请求分页管理
• 请求分页管理是动态分页管理,是在静态分页管 理基础上发展而来的。在简单分页管理中,如果 作业所要求的页面数比内存空闲的块数多,则该 作业不能装入运行。在虚拟存储器技术的支持下, 可以进行请求分页管理。 • 那么请求分页管理的基本思想是什么?作业要访 问的页面不在内存时,该如何处理?如何知道哪 些页面在内存,哪些不在?如何决定把作业的哪 些页面留在内存中呢?将虚页调入内存时,没有 空闲块又怎么处理? • 在虚拟存储系统中,将对逻辑空间和物理空间的 考虑截然分开,逻辑空间的容量由系统提供的有 效地址长度决定。


程序的局部化程度包括时间局部化和空间局部化
时间局部化是指一旦某个位置----数据或指令----被访 问了,它常常很快又要再次被访问。这可通过循环、经 常用到的变量和子程序等程序结构来实现。 空间局部化是指一旦某个位置被访问到,那么它附近的 位置很快也要用到。这可以尽量采用顺序的指令列、线 形的数据结构来实现。
48K B
64K B
图 存储容量与缺页中断次数的关系
4.页面置换算法性能 三个参数:
页面走向:每个作业的虚页调入实存的顺序,称为页面轨迹,
或页面走向,用P表示。 主存容量:是指分配给作业的主存块数,M表示。 置换算法:包括FIFO,LRU等
P 行表示页面走向,M 行表示在主存中的页面号,其中带有+ 的表示新调入 页面,在M行的各列按调入的顺序排列,带有圆圈的数字表示下一时刻 将被淘汰页面,F行表示是否引起缺页中断,带+号的表示引起缺页中断。

wk.baidu.com

局部化程度随程序而异,一般来说,总希望编制 的程序具有较高的局部化程度。这样,程序执行 时可经常集中在几个页面上进行访问,以减少缺 页中断的次数。
② 页面的大小
页面大小应根据实际情况来确定,它和计算机的性能 以及用户的要求都有关系。
• 页面大,页表小,占用空间小,缺页中断次数少,但换 页时间长,页内碎片也大,浪费空间 • 页面小时,正好相反
实存管理
• 具有整体性、驻留性及连续性三种特性的 存储器管理方法,叫实存管理。我们学习 过的无论是分区管理,分页管理,或分段 管理,还是段页式管理,都属于实存管理。 • 实存管理的所谓整体性是指一个作业的全 部实体在执行之前必须被整个地装入内存, 也就是说,如果一个作业的逻辑地址空间 大于内存的用户区时就不能执行。

a)
一个作业不全部装入,该作业能否开始运行, 并运行一段时间?
作业在运行期间的各个阶段,多数作业只使用全部地址 空间的一部分。例如用户编制的出错处理子程序,在作 业正常运行情况下不会执行这些程序,没有必要把它们 调入内存。即程序中往往会有一些彼此互斥的部分不是 每次运行时都能执行到。 程序的局部性。顺序执行的指令和线性结构的数据(如数 组)。它们通常被限定在某一连续区域。一旦某一位置被 访问后,那么它附近的位置很快也会被访问。 因此,没有必要把一个作业一次性全部装入内存再 开始运行。而是可以把程序当前执行所涉及的信息放入 内存中,其余部分可根据需要临时调入,由操作系统和 硬件相配合来完成主存和辅存之间信息的动态调度。
缺页中断次数F=10, 缺页率f=10/12=83%。
例 4 设M=4,其余同例 3,则缺页中断次数和 缺页率?
表4LRU性能分析例(M=4)
3
4
由表 3, 表 4 设G(P, M, t)表示当页面走向为P,主存容量为M,在时 刻t的页面集合,对于LRU算法,存在如下关系,即
G ( P , M , t ) G ( P , M 1 , t )
成立。即对于任何时刻t(t=1, 2, …, 12),G(P, M, t)所选中的页
号必定包含在G(P, M+1, t)之中。这种关系说明了增加主存
容量不会增加缺页中断次数,然而对FIFO算法, 此关系并 不成立。
请求分页存储管理方案的评价
• 它提供了大容量的多个虚拟存储器, 作业地址 • 更有效地利用了主存,一个作业的地址空间不必 全部同时都装入主存, 只装入其必要部分,其 它部分根据请求装入, 或者根本就不装入(如错 误处理程序等)
虚拟存储器的概念 P61
• 虚拟存储技术的基本思想是利用大容量的外存来扩
充内存,产生一个比有限的实际内存空间大得多的、
逻辑的虚拟内存空间,以有效地支持多道程序设计
的实现和大型程序运行的需要,增强系统的处理能 力。

请求分页系统支持虚拟存储技术
请求分页存储管理
• 名词
1. 作业的逻辑地址空间划分的页,称为 虚页 2. 主存称为实存 3. 实存中的块称为实页
• 实现这种算法可通过周期性地对“引用位”进行检查, 并利用它来记录一页面自上次被访问以来所经历的时间t, 淘汰时选择t最大的页面。 •不太实用
性能分析
为了尽可能地减少缺页中断的次数,应从
① 程序设计的质量 ② 页面的大小 ③ 主存的容量 ④ 页面置换算法 等几方面来考虑。

程序设计的质量(主要指程序的局部化程度)
• 基于上述情况,就没有必要把一个作业一次性全 部装入内存再开始运行。而是可以把程序当前执 行所涉及的信息放入内存中,其余部分可根据需 要临时调入,由操作系统和硬件相配合来完成主 存和辅存之间信息的动态调度。这样的计算机系 统好像为用户提供了一个存储容量比实际主存大 得多的存储器,就称为虚拟存储器。
缺页中断次数F=10 缺页率f=10/12=83%
异常现象 (Belady异常)
由表1,表2得出:对于FIFO算法,内存增加,缺页率反而增加!
例 3 设页面走向如上,M=3,置换算法为LRU,则缺页中断 次数和 缺页率? 由于采用 LRU 算法, M 中各列按访问的时间顺序排列, 最近被访问的页面在最前。 表3LRU性能分析例(M=3)
• 请求分页管理就能实现这种虚存空间,基本方法是在分页管 理的基础上,在作业开始执行前,只装入作业的一部分页面 到内存,其它的页面在作业执行过程中根据需要,动态地从 辅存装入内存。当内存块已经占满时,再根据某种策略交换 出部分页面到辅存。 • 根据作业的执行情况装入作业的部分实体,显然节省了内存 空间。 • 请求分页管理和分页管理的数据结构、地址映射和存储保护、 存储分配与回收等都类似,但请求分页管理的实现过程复杂 很多,需要由硬件和软件的相互配合才能完成。
页面置换算法/淘汰算法
• • • • 先进先出算法(FIFO)
– 淘汰驻留主存时间最长的页面
最近最久未用置换算法(LRU)
– 淘汰在最近一段时间最久未用的页面
最近最不常用算法 最近未使用算法
1. 先进先出算法(FIFO算法)
• 这种算法的基本思想是:总是先淘汰那些驻留 在内存时间最长的页面,即先进入内存的页面先被 置换掉。 •理由是:最先进入内存的页面不再被访问的可能 性最大。
• 更加有利于多道程序的运行, 从而提高了系统 效率;
③ 主存的容量 一个作业的执行所产生缺页的次数是存放页面的实际存 储容量的函数。当存储容量达到某一程度时,缺页中断 的次数的减少就不明显了。 试验分析表明:对所有程序来说,要使之有效地工作, 它在主存中的页面数不低于它的总页面数的一半。
缺 页 次 数F 9000 8000 7000 6000 5000 4000 3000 2000 1000 0 16K B 32K B M 80K B 96K B 112K B 主 存 大 小 M 24 K B 32 K B 48 K B 64 K B 80 K B 96 K B 112 K B 128 K B 160 K B 192 K B F 9321 5126 2456 1295 696 441 329 271 144 62
• 驻留性是指作业一旦进入内存便一直驻留 在内存区直到运行完毕。 • 连续性,顾名思义,是指给作业分配的一 片连续的内存空间。 • 整体性、驻留性及连续性这三种特性不利 于内存空间的有效利用。
虚拟存储器
• 虚拟存储器(Virtual Memory),简称虚存, 是指对内存的虚拟,一种实际并不存在的 内存空间,包括一级存储器概念和作业地 址空间概念。虚拟并不是无限的,取决于 机器的CPU地址结构,虚存容量不能大于 外存容量。
请求分页存储管理基本原理
• 请求分页系统对地址空间和内存空间的管理采
用与分页存储管理系统相同的方式,但是它只 将作业的部分页面装入内存,便可开始运行作 业,作业的其他部分被存放在辅助存储器上。
请求分页存储管理必须解决的问题
① 一个作业不全部装入,该作业能否开始运 行,并运行一段时间?
② 当程序要访问的某页不在内存时,如何发 现这种缺页情况?发现后应如何处理? ③ 缺页时,所需的页面从何处装入?装入到 何处?若此时实存中没有空闲块应怎么办?
虚页号 辅存地址
③ 新调入的页面装入何处?
实存中有空闲实页,直接将其装入。 空闲已满,则必须淘汰(页面置换算法)实存中的某一页。 被淘汰的页,以后可能还要用,是否需要写回辅存, 这取决于该页进入实存后是否被修改,如未被修改,因辅 存上已有副本则不必写回辅存。否则,要重新写回辅存。 因此页表中还可以增加一个“修改位”,以反映该页是否 已被修改过。 为了便于系统管理页面置换,增加“引用位”,表示该 页最近是否被访问过。
b)
c)

当程序要访问的某页不在内存时,如何发现 这种缺页情况?发现后应如何处理?
地址变换机构检测到虚页的状态为1,由硬件产生缺页中断,转去中断处理
③ 所需的页面从何处装入?
在请求分页管理系统中,当一个作业完成编译 链接后,所形成的装配模块通常以文件形式存入作 为辅存的磁盘上,当该页需要装入实存时,就从磁 盘上调进来。为此,需建立一个作业的辅助页表, 也称为外页表。
图 缺 页 中 断 的 发 生 及 其 处 理
抖动/ 系统颠簸
软 件
复 制 到 辅 存
取 出 保 存 的 页 号 找 出 磁 盘 地 址 入 页 修 改 PM T M BT表 重 新 执 行 被 中 断 的 指 令
抖动/系统颠簸
出页:将某一页从实存移到辅存
入页:将某一页从辅存调入实存
这种反复进行入页和出页的现象称为“抖动/系统颠簸”
1. 请求调入及缺页中断处理 2. 淘汰算法 3. 抖动与工作集
请求分页存储管理铺垫
1. 作业在运行期间的各个阶段,多数作业只使用全 部地址空间的一部分。例如用户编制的出错处理 子程序,在作业正常运行情况下不会执行这些程 序,没有必要把它们调入内存。即程序中往往会 有一些彼此互斥的部分不是每次运行时都能执行 到。 2. 程序的局部性。顺序执行的指令和线性结构的数 据(如数组)。它们通常被限定在某一连续区域。一 旦某一位置被访问后,那么它附近的位置很快也 会被访问。
扩充后的PMT表
虚页号 主存块号 改变位 引用位 状态位 辅存地址
0/1 主存块号 0/1 1该页已被 0/1 修改过 1最近已被 0在内存 访问过 0该页未被 1不在内存 修改
辅助页表
虚页号 辅存地址 保护信息
执 行 一 条 指 令 形 成 有 效 地 址 计 算 页 号 硬 件 该 页 在 实 存 吗 ? N 缺 页 中 断 入 口 出 页 有 空 闲 的 实 页 码 ? Y N 修 改 PM T M BT Y C = 1? N Y 取 数 据 完 成 该 指 令 取 下 一 条 指 令
2.最近最久未使用页面置换算法( Least Recently Used/ LRU算法)
•这种算法的基本思想是,如果某一页被访问了,那么它 很可能马上又被访问;反之,如果某一页很长时间没有被 访问,那么最近也不太可能会被访问。这种算法考虑了程 序设计的局部性原理。其实质是,当需要置换一页时,选 择在最近一段时间最久未使用的页面予以淘汰。
例 1 设页面走向为P=4, 3, 2, 1, 4, 3, 5, 4, 3, 2, 1, 5,主存容量 M=3 ,置换算法采用 FIFO ,求访问过程中发生缺页中断的 次数和缺页率?假设开始时,主存未装入任何块 。 表1 FIFO性能分析例(M=3)
缺页中断次数F=9 缺页率f=9/12=75%
例 2 设M=4,其余同例 1。则缺页中断次数和缺页率? 表2 FIFO性能分析例(M=4)
相关文档
最新文档