计算机操作系统第五章-虚拟存储器
- 格式:doc
- 大小:1012.50 KB
- 文档页数:14
第五章虚拟存储器一、单项选择题1. 虚拟存储器的最大容量___。
*A. 为内外存容量之和 B. 由计算机的地址结构决定(((实际容量C. 是任意的D. 由作业的地址空间决定虚拟存储器是利用程序的局部性原理,一个作业在运行之前,没有必要全部装入内存,而只将当前要运行那部分页面或段装入便可以运行,其他部分放在外部存储器内,需要时再从外存调入内存中运行,首先它的容量必然受到外存容量的限制,其次寻址空间要受到计算机地址总线宽度限制。
最大容量(逻辑容量)收内外存容量之和决定,实际容量受地址结构决定。
2.在虚拟存储系统中,若进程在内存中占3块(开始时为空),采用先进先出页面淘汰算法,当执行访问页号序列为1﹑2﹑3﹑4﹑1﹑2﹑5﹑1﹑2﹑3﹑4﹑5﹑6时,将产生___次缺页中断。
(开始为空,内存中无页面,3块物理块一开始会发生三次缺页。
)A. 7B. 8C. 9D. 103. 实现虚拟存储器的目的是___.A.实现存储保护B.实现程序浮动C.扩充辅存容量D.扩充主存容量4. 作业在执行中发生了缺页中断,经操作系统处理后,应让其执行___指令.(书本158页,(2)最后一句话)A.被中断的前一条B.被中断的C.被中断的后一条D.启动时的第一条5.在请求分页存储管理中,若采用FIFO页面淘汰算法,则当分配的页面数增加时,缺页中断的次数________。
(在最后一题做完后再作答)答案错误选择:DA.减少 B. 增加 C. 无影响 D. 可能增加也可能减少6. 虚拟存储管理系统的基础是程序的________理论.A. 局部性B. 全局性C. 动态性D.虚拟性7. 下述_______页面淘汰算法会产生Belady现象.A. 先进先出*B. 最近最少使用C. 最近不经常使用D. 最佳二. 填空题1. 假设某程序的页面访问序列为1.2.3.4.5. 2. 3. 1. 2. 3. 4. 5. 1. 2. 3. 4且开始执行时主存中没有页面,则在分配给该程序的物理块数是3 且采用FIFO方式时缺页次数是____13____; 在分配给程序的物理块数是4且采用FIFO方式时,缺页次数是___14______; 在分配给程序的物理块数是3且采用LRU方式时,缺页次数是______14____。
第五章存储管理一、选择题:1.将作业地址空间中的逻辑地址转换为内存中的物理地址的过程称为()。
A.重定位B.逻辑变换C.地址交换D.进程创建2.虚存的基础是()。
A.局部性理论B.程序执行时对内存访问不均匀C.指令局部性D.变量的连续访问3.实现虚拟存储器的目的是()。
A.实现存储保护B.实现信息共享C.扩充辅存容量D.扩充主存容量4.在地址映射方式中,静态重定位具有的特点是()。
A.可以把一个作业分配在一个不连续的存储区域中B.可以实现不同作业主存信息的共享C.要求把一个作业分配在一个连续的存储区域中D.很容易实现主存的扩充5.在地址映射方式中,动态重定位具有的特点是()。
A.很难实现主存的扩充,可采用覆盖技术来实现B.地址在执行过程中是可以改变的C.很难实现不同作业主存信息的共享D.非常简单,任何计算机,任何操作系统都可以实现6.可重定位内存分区分配目的为()。
A.解决碎片问题B.便于多作业共享内存C.回收空白区方便D.摆脱用户干预7.实现虚存最主要的技术是()。
A.整体覆盖B.整体对换C.部分对换D.多道程序设计8.动态重定位是在作业的()中进行的。
A.编译过程B.装入过程C.修改过程D.执行过程9.在下面关于虚拟存储器的叙述中,正确的是()。
A.要求程序运行前必须全部装入内存且在运行过程中一直驻留在内存B.要求程序运行前不必全部装入内存且在运行过程中不必一直驻留在内存C.要求程序运行前不必全部装入内存且在运行过程中必须一直驻留在内存D.要求程序运行前必须全部装入内存且在运行过程中不必一直驻留在内存10.虚存的可行性的基础是()A.程序执行的离散性B.程序执行的顺序性C.程序执行的局部性D.程序执行的并发性11.在存储管理中,采用覆盖与交换技术的目的是()。
A.减少程序占用的主存空间B.物理上扩充主存容量C.提高CPU效率D.代码在主存中共享12在内存分配的“最佳适应法”中,空闲块是按()。
操作系统第五章复习题一、选择题1、虚拟存储器功能的管理方法包括()。
A 可变分区存储管理B 基本分页存储管理C 请求分段存储管理D 段页式存储管理2、虚拟存储器的最大容量()。
A 由作业的地址空间决定B 是任意的C 由计算机的地址结构决定的D 为内、外容量之和3、下面的页面置换算法中会产生所谓Belady 异常现象的是()。
A 最佳页面置换算法(OPT)B 先进先出页面置换算法(FIFO)C 最近最久未使用页面置换算法(LRU)D 最少使用页面置换算法(LFU)4、实现虚拟存储器的目的是()。
A 实现存储保护B 实现程序浮动C 扩充辅存容量D 扩充内存容量5、把作业地址空间使用的逻辑地址变成内存物理地址为()。
A 加载B 重定位C 物理化D 逻辑化6、虚拟存储管理系统的基础是程序的()理论。
A 局部性B 全局性C 动态性D 虚拟性7、从下列关于非虚拟存储器的论叙中,选出一条正确的论叙。
()A 要求作业在运行前,必须全部装入内存,且在运行过程中也必须一直驻留内存。
B 要求作业在运行前,不必全部装入内存,且在运行过程中不必一直驻留内存。
C 要求作业在运行前,不必全部装入内存,但在运行过程中必须一直驻留内存。
D 要求作业在运行前,必须全部装入内存,且在运行过程中不必一直驻留内存。
二、判断题1、虚拟存储器时物理上扩充内存容量。
(F )2、为提高请求分页系统中内存的利用率,允许用户使用不同大小的页面。
(F )3、在请求分页式系统中,以页为单位管理用户的虚空间,以段为单位管理内存空间。
(F )三、填空题1、在页式存储器管理系统中,常用的页面淘汰算法有:(最佳),选择淘汰不再使用或最远的将来才使用的页;( FIFO),选择淘汰在内存驻留时间最长的页;2、在请求分页系统中,若逻辑地址中的页号超过页表控制寄存器中的页表长度,则会引起(越界中断);否则,若所需的页不在内存中,则会引起(缺页中断)。
四、简答题1、虚拟存储器有哪些特征?其中最本质的特征是什么?2、实现虚拟存储器需要哪些硬件支持?3、说明请求分段系统中的缺页中断处理过程。
第五章存储管理作业答案2、6、10、13、15、162、解释下列概念:物理地址、逻辑地址、逻辑地址空间、内存空间、重定位、静态重定位、动态重定位、碎片、紧缩、可重定位地址。
物理地址——内存中各存储单元的地址由统一的基地址顺序编址,这种地址称为物理地址。
逻辑地址——用户程序经编译之后的每个目标模块都以0为基地址顺序编址,这种地址称为逻辑地址。
逻辑地址空间——由程序中逻辑地址组成的地址范围叫做逻辑地址空间。
内存空间——由内存中的一系列存储单元所限定的地址范围称作内存空间。
重定位——把逻辑地址转变为内存物理地址的过程叫做重定位。
静态重定位——在目标程序装入内存时所进行的重定位。
动态重定位——在程序执行期间,每次访问内存之前进行的重定位。
碎片——在分区法中,内存出现许多容量太小、无法被利用的小分区称作“碎片”。
紧缩——移动某些已分配区的内容,使所有作业的分区紧挨在一起,而把空闲区留在另一端,这种技术称为紧缩。
可重定位地址——当含有它的程序被重定位时,将随之被调整的一种地址。
6、什么是虚拟存储器?它有哪些基本特征?参考答案:虚拟存储器是用户能作为可编址内存对待的虚拟存储空间,在这种计算机系统中实现了用户逻辑存储器与物理存储器分离,它是操作系统给用户提供的一个比真实内存空间大得多的地址空间。
虚拟存储器的基本特征是:虚拟扩充——不是物理上,而是逻辑上扩充了内存容量;部分装入——每个作业不是全部一次性地装入内存,而是只装入一部分;离散分配——不必占用连续的内存空间,而是“见缝插针”;多次对换——所需的全部程序和数据要分成多次调入内存。
10、某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。
假定某时刻一个用户页表已调入内存的页面页号和物理块号如表5-1所示。
则逻辑地址0A5C(H)所对应的物理地址为。
表5-1 页表中页号和物理块号对照表参考答案:0A5C(H)换成二进制:页号为2,查表,对应物理块号为4,与页内地址拼接成物理地址:再转换为十六进制,即125C(H)13、已知段表如表5-2所示。
第五章虚拟存储器一、单项选择题1、以下存储管理技术中,支持虚拟存储器的技术是()。
A.动态分区分配B.可重定位分区分配C.请求分页存储管理D.基本分页存储管理2、请求分页存储管理中,若把页面尺寸增加一倍,在程序顺序执行时,则一般缺页中断次数会()。
A.增加B.减少C.不变D.可能增加也可能减少3、虚拟存储管理策略可以()。
A.扩大物理内存容量B.扩大物理外存容量C.扩大逻辑内存容量D.扩大逻辑外存容量4、下列那一条()不是影响缺页率的主要因素。
A.缺页中断服务速度B.分配给作业的物理块数C.系统规定页面的大小D.页面调度算法二、填空题1、在虚拟存储机制中,进程的一部分装入内存,一部分保留在硬盘上。
当发现某条指令不在内存中时,发生__________。
1、虚拟存储器的特征有__________,__________和__________。
2、在请求分页存储管理中,每当要访问的页面不在内存时,会产生__________。
3、在请求分段存储管理中,当运行进程要访问的段尚未调入内存时,会产生__________。
5、在请求分页存储管理中,进程的某页可能会重复地被换出和换入内存,发生多次的缺页中断,影响程序执行的性能,这种现象称为__________。
6、某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。
假定某时刻系统为用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,虚拟地址065C和0D3C变换为物理地址后分别是__________和__________。
(十六进制)7、在一个请求分页存储管理系统中,采用先进先出页面置换算法时,假如一个作业的页面走向为1,3,2,4,2,3,5,4,3,1,2,5。
当分配给该作业的物理块数M分别为3和4时,访问过程中发生的缺页次数为__________和__________。
(假定开始时,物理块中为空)8、在一个请求分页存储管理系统中,某程序的页面走向为:2,3,2,1,5,2,4,5,3,2,5,2。
操作系统虚拟存储器的概念操作系统虚拟存储器是一个允许程序在其看来有连续的地址空间的内存抽象。
通过虚拟存储器,操作系统可以将程序分配给物理内存的不连续位置,从而实现更高效的内存管理和更大规模的程序执行。
本文将从概念、原理、实现等角度详细介绍操作系统虚拟存储器。
概念:操作系统虚拟存储器是一种内存管理技术,将程序的连续地址空间抽象为虚拟的连续地址空间,使得程序可以使用比实际物理内存更大的地址空间。
虚拟存储器的目标是提供每个进程一个私有的地址空间,用于存储其代码、数据和堆栈等。
在虚拟存储器中,每个进程看到的地址空间称为虚拟地址空间,而实际在内存中的地址空间称为物理地址空间。
原理:虚拟存储器的实现依赖于虚拟地址转换技术。
当程序访问虚拟地址时,操作系统将其翻译成物理地址,并检查翻译后的地址是否合法。
虚拟地址转换通常涉及到以下几个步骤:1. 页表管理:操作系统使用页表来维护虚拟地址和物理地址之间的映射关系。
页表包括多个页表项,每个页表项对应一段连续的虚拟地址和物理地址,用于记录其映射关系。
2. 分页机制:操作系统将虚拟地址和物理地址划分为固定大小的页,通常是4KB 或者8KB。
分页的大小是操作系统所支持的最小单位,也是整个虚拟存储器的基本块。
3. 地址转换:当程序访问虚拟地址时,操作系统通过查找页表找到对应的页表项,获取物理地址的高位部分和低位部分。
高位部分表示该虚拟地址所在的页,低位部分表示页内偏移量。
操作系统将高位部分与页表项中的基地址相加,再加上低位部分,就得到了对应的物理地址。
4. 内存访问权限控制:操作系统可以在页表中设置权限位,用于控制对于虚拟地址的访问权限。
常用的权限包括读取、写入和执行等。
实现:虚拟存储器的实现需要操作系统的支持,在现代操作系统中通常采用以下几种技术来实现虚拟存储器:1. 分段式虚拟存储器:将程序分为若干段,每个段对应一块连续的虚拟内存空间,可以动态加载和卸载不同的程序段,提高内存的利用率。
第五章一、问答题1、简述页式虚拟存储管理的基本原理。
2、交换扩充了内存,因此,交换也实现了虚拟存储器。
这句话对吗?不对。
交换是把各个进程完整地调入内存,运行一段时间,再放回磁盘上。
虚拟存储器是使进程在只有一部分在内存的情况下也能运行。
交换是把整个进程换入换出主存。
而虚拟存储器的基本思想是程序的大小可以超过物理内存的大小,操作系统把程序的一部分调入主存来运行,而把其他部分保留在磁盘上。
故交换并未实现虚拟存储器。
3、简述虚拟存储器的实现原理。
4、简述快表的作用。
5、什么是紧凑?什么时候紧凑?6、比较存储管理中的连续分配和离散分配方式。
7、当系统中的地址空间非常大时(例如32位),会给页表的设计带来什么问题?请给出一个方案并分析其优缺点。
答:会导致页表过长从而很难找到一块连续的存储空间存放页表,此外如果页表中的行不连续也会加大访问页表的查找时间。
可以用多级页表解决这个问题,将页表分页,离散地存储在不同区域,同时建立另一张页表映射原来页表的每一页。
优点是不需要大块的连续空间,但并没有减少页表的空间,同时也增加了访存次数。
8、缺页中断和一般中断有什么区别?9、简述分页存储管理的基本思想和页表的作用。
10、交换扩充了内存,因此,交换也实现了虚拟存储器。
这句话对吗?11、叙述简单Clock置换算法的实现方案。
12、解释静态重定位与动态重定位。
13、什么叫紧凑,什么时候紧凑?14、为了实现虚拟页式存储管理,页表应该包含哪些内容?15、页和段有哪些区别?16、覆盖技术和交换技术的特点是什么?17、简述分页和分段的区别。
18、什么是紧凑?什么时候紧凑?19、简述虚拟存储器的定义。
20、简述分页和分段的区别21什么叫可重入代码?22、局部性原理可以体现在哪两个方面,其具体含义是什么?23、分页和分段的主要区别是什么?二、计算题1、现有一分页虚拟存取管理系统,其页表保存在寄存器中。
若有一个可用的空页或被替换的页未被修改,则它处理一个缺页中断需要8ms。
操作系统实验实验五虚拟存储器管理学号 1115102015 姓名方茹班级 11电子A 华侨大学电子工程系实验五虚拟存储器管理实验目的1、理解虚拟存储器概念。
2、掌握分页式存储管理地址转换盒缺页中断。
实验内容与基本要求1、模拟分页式存储管理中硬件的地址转换和产生缺页中断。
分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。
为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存。
作业执行时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式“绝对地址=块号×块长+单元号”计算出欲访问的主存单元地址。
如果块长为2 的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。
若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,有操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。
设计一个“地址转换”程序来模拟硬件的地址转换工作。
当访问的页在主存时,则形成绝对地址,但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。
当访问的页不在主存时,则输出“* 该页页号”,表示产生了一次缺页中断。
2、用先进先出页面调度算法处理缺页中断。
FIFO 页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。
假定作业被选中时,把开始的m 个页面装入主存,则数组的元素可定为m 个。
实验报告内容1、分页式存储管理和先进先出页面调度算法原理。
分页式存储管理的基本思想是把内存空间分成大小相等、位置固定的若干个小分区,每个小分区称为一个存储块,简称块,并依次编号为0,1,2,3,……,n块,每个存储块的大小由不同的系统决定,一般为2的n次幂,如1KB,2 KB,4 KB等,一般不超过4 KB。
第5章存储器管理习题与解答5.2 例题解析例5.2.1 为什么要引入逻辑地址?解引入逻辑地址有如下原因:(1) 物理地址的程序只有装入程序所规定的内存空间上才能正确执行,如果程序所规定内存空间不空闲或不存在,程序都无法执行;(2) 使用物理地址编程意味着由程序员分配内存空间,这在多道程序系统中,势必造成程序所占内存空间的相互冲突;(3) 在多道程序系统中,程序员门无法事先协商每个程序所应占的内存空间的位置,系统也无法保证程序执行时,它所需的内存空间都空闲。
(4) 基于上述原因,必须引入一个统一的、在编程时使用的地址,它能够在程序执行时根据所分配的内存空间将其转换为对应的物理地址,这个地址就是逻辑地址。
(5) 逻辑地址的引入为内存的共享、保护和扩充提供方便。
例5.2.2 静态重定位的特点有哪些?(1) 实现容易,无需增加硬件地址变换机构;(2) 一般要求为每个程序分配一个连续的存储区;(3) 在重定位过程中,装入内存的代码发生了改变;(4) 在程序执行期间不在发生地址的变换;(5) 在程序执行期间不能移动,且难以做到程序和数据的共享,其内存利用率低。
例5.2.3 动态重定位的特点有哪些?(1) 动态重定位的实现要依靠硬件地址变换机构,且存储管理的软件算法比较复杂;(2) 程序代码是按原样装入内存的,在重定位的过程中也不发生变化,重定位产生的物理地址存放在内存地址寄存器中,因此不会改变代码;(3) 同一代码中的同一逻辑地址,每执行一次都需要重位一次;(4) 只要改变基地址,就可以很容易地实现代码在内存中的移动;(5) 动态重定位可以将程序分配到不连续的存储区中;(6) 实现虚拟存储器需要动态重定位技术的支持;尽管动态重定位需要硬件支持,但他支持程序浮动,便于利用零散的内存空间,利于实现信息共享和虚拟存储,所以现代计算机大都采用动态重定位。
例5.2.4 装入时动态链接的优点有哪些?(1)便于软件版本的修改和更新在采用装入时动态链接方式时,要修改或更新各个目标模块,是件非常容易的事,但对于经静态链接以装配在一起的装入模块,如果要修改或更新其中的某个目标模块时,则要求重新打开装入模块,这不仅是低效的,而且对于普通用户是不可能的。
第五章虚拟存储器第一节虚拟存储器的基本概念一、虚拟存储器的引入在前面介绍的各种存储管理方式中,用户作业一旦被装入内存,就会一直驻留其中,直到进程运行结束(驻留性)。
有些存储管理方式还存在一次性。
因此,用户作业要最终运行完毕,系统必须给它提供不短于作业长度的存储空间。
于是就出现了两种问题:•长作业无法运行•大量作业无法同时运行程序运行的局部性原理:在一段时间内一个程序的执行往往呈现出高度的局部性。
前期讨论:P112-113;局部性还表现在两方面:(1) 一条指令被执行,则不久以后该指令很可能再次执行;某个数据被访问,则不久以后该数据附近的数据很可能被访问。
产生这类局部性的典型原因,是由于在程序中存在着大量的循环操作。
(2) 程序在一段时间内所访问的地址,可能集中在一定的范围之内。
若某一存储单元被使用,则在一定时间内,与该存储单元相邻的单元很可能被使用。
其典型情况便是程序的顺序执行、数组的处理等。
局部性原理是在存储分配时克服驻留性、实现虚拟存储的依据。
二、虚拟存储器的定义定义:具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。
其访问速度接近于内存,而其容量和每位的成本却又接近于外存。
特性:虚拟存储器连续性离散性一次性多次性驻留性交换性虚拟性对用户而言,它访问特性和内存一样;它以CPU时间和外存空间换取宝贵内存空间,是操作系统中的一种资源转换技术。
容量:•一个虚拟存储器的最大容量是由计算机的地址结构确定的。
如:若CPU的有效地址宽度为32位,则程序可以寻址范围是0~232-1 ,即虚存容量可达4GB。
•虚拟存储器的容量与主存的实际大小没有直接的关系,而是在主存与辅存的容量之和的范围内。
三、虚拟存储技术基本原理:P115把内存与外存有机地结合起来使用,从而得到一个容量很大的“内存”。
当进程开始运行时,先将它的一部分内容装入内存,另一部分暂时留在外存。
在运行过程中,当要访问的指令/数据不在内存时,由OS 自动将内存中的一些内容调到外存,藤出空间,再将马上要访问的内容从外存调入内存。
目的:提高内存利用率;为大作业的运行提供可能。
实现方法:•请求分页系统•请求分段系统第二节请求分页式存储管理方式一、基本原理对静态分页式存储管理进行改进:请求分页式存储管理在进程开始运行之前,不是将作业的全部页装入,而是装入开始的少数几页(甚至一页)入内存。
之后根据进程运行的需要,利用请求调入技术,动态地装入后续页;当内存空间已满,而又需要装入新的页时,则又利用置换技术,根据某种算法淘汰一个页,以便藤出空间装入新的一页。
请求分页式存储管理需要解决下面三个问题:•OS如何知道进程要访问的页面在不在内存中;•当发现缺页时,如何把所缺页面调入内存;•当内存中没有空闲块时,为了要接受一个新页,需要把老的一页淘汰出去,根据什么策略选择准备淘汰的页。
二、硬件的支持1、改进页表的结构•状态位(驻留位):表示该页目前是在内存还是在外存;•访问字段:记录该页最近是否被访问过或被访问的次数;•修改位:表示该页在本次读入内存后是否在内存中被改写过;•外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考。
2、增加缺页中断机构:每当进程要访问的一个逻辑地址所属的页目前不在内存,就产生缺页中断,进行调页或换页处理。
•在地址变换过程中,在页表中发现所要访问的页不在内存,则产生缺页中断。
操作系统接到此中断信号后,就调出缺页中断处理程序,根据页表中给出的外存地址,将该页调入内存,使作业继续运行下去(实现了请求调入);•如果内存中有空闲块,则分配一块,将新调入页装入内存,并修改页表中相应页表项目的驻留位及相应的内存块号;•若此时内存中没有空闲块,则要淘汰某页。
若将被淘汰的页在内存期间被修改过,则要将其写回外存(实现了置换);缺页中断的中断处理过程,见下图左。
3、修改后的地址变换流程,见下图右P158三、存储分配方法1、存储分配方法的改进:•在进程开始执行时,只将最开始和最常用的部分(如主程序、主菜单)按页装入内存。
为整个进程建立页表,记录进程各页使用内存的情况。
其他页在进程执行的过程中被动态地装入。
•当需要访问的页不在内存中时,系统产生并处理缺页中断。
•页表在页被调入、换出时要被改写,记录进程的各页对内存使用情况的变化。
2、物理块的分配策略和分配算法•最小物理块数及其确定最小物理块数是指能保证进程正常运行所需要的最小物理块数。
它取决于指令的格式、功能和寻址方式。
•物理块的分配算法P138-140•物理块的置换策略P135-137四、调页策略1、调页时机----确定何时调页•预调入:一次调入一批预计即将访问的页。
本方法主要用于进程的首次页调入。
•请求调入:缺页时调入,一次调入一页。
2、调页地址----确定从何处调入•全部从对换区调入、调出;•需要修改的部分从对换区调入、调出,其他部分从文件区调入;•初次调入,从文件区;调出放到交换区;再次调入,从交换区。
3、调页过程----确定如何调页调页过程即缺页中断处理程序的处理过程,如前面的框图。
调页过程中,重要的一步是按照一定的页面置换算法淘汰内存中的一页,空出一块来存放新调入的页。
第三节页面置换算法页面置换算法是“选择一页,换出内存”时选择哪一页的原则和方法。
置换算法的好坏,直接影响存储管理的性能。
置换算法的理想方案,是将那些访问概率高的页面留在内存中,而将那些访问概率最低的页面换出内存。
对换出页面的不同选择形成不同的置换算法。
一个好的页面置换算法应该有较低的页面更换频率,避免频繁地换页造成系统性能的下降。
一、几种简单的算法1、随机淘汰算法当系统设计人员无法确定哪类页访问的频率低的情况下,就随机地选择一个用户页,将其换出。
2、最佳置换算法(只是一种理论上的算法)每次将以后最长时间内不再被访问或永远不再被访问的页换出。
该算法保证最低的缺页率。
二、先进先出(FIFO)置换算法1、算法思想:选择在内存中驻留时间最长的页,交换出去。
例如:假定系统为某进程分配了三个物理块,并考虑有以下的页面访问串:7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,12、算法的实现:将一个进程已调入的页按进入的先后次序链成一个队列,设一个头指针、一个尾指针。
每次将头指针指向的页替换出去;新调入的页插到队尾。
3、算法的特点:•简单、易实现,需要的硬件支持少。
•但是,经常要使用的页,频繁地被选择换出(最先被调入的页可能是最常使用的)。
三、最近最久未使用(LRU)置换算法1、算法思想:选择最后一次访问时间距离当前时间最长的一页并淘汰之。
即淘汰没有使用的时间最长的页。
该算法需要较多的硬件支持。
2、硬件支持与实现(1) 移位寄存器:为每个在内存中的页面配置一个移位寄存器(字),可表示为R=R n-1R n-2R n-3… R2R1R0•当该页面被访问时,将R的最高位置1;•系统定时将所有页面的移位寄存器逻辑右移一位,进行除2操作;•换页时将移位寄存器值最小的页淘汰。
(2) 栈:保存当前页面使用的变化情况为每个进程建立一个栈,栈的大小等于分配给进程的块数。
换页时淘汰栈底的页,最近访问的页放在栈顶。
3、算法特点• 比较接近理想的置换算法;• 需要较多的硬件支持。
四、 Clock 置换算法(简化的LRU 算法)1、算法思想:页每被访问一次,将该页的访问位置1替换指针图 4-30 简单Clock 置换算法的流程和示例2、改进型Clock 置换算法由访问位A 和修改位M 可以组合成下面四种类型的页面:• 1类(A=0,M=0):表示该页最近既未被访问,又未被修改,是最佳淘汰页。
• 2类(A=0,M=1):表示该页最近未被访问,但已被修改,并不是很好的淘汰页。
•3类(A=1,M=0):最近已被访问,但未被修改,该页有可能再被访问。
•4类(A=1,M=1):最近已被访问且被修改,该页有可能再被访问。
其淘汰的过程可分成以下三步:(1) 从指针所指示的当前位置开始,循环扫描队列,寻找A=0且M=0的第一类页面,将所遇到的第一个这样的页面作为所选中的淘汰页。
在第一次扫描期间不改变访问位A。
(2) 如果第一步失败,即查找一周后未遇到第一类页面,则开始第二轮扫描,寻找A=0且M=1的第二类页面,将所遇到的第一个这类页面作为淘汰页。
在第二轮扫描期间,将所有扫描过的页面的访问位都置0。
(3) 如果第二步也失败,即未找到第二类页面,则将指针返回到开始的位置,并已将所有的访问位A复0。
然后重复第一步,如果仍失败,必要时再重复第二步,此时就一定能找到被淘汰的页。
五、其他置换算法1、最少使用(LFU:Least Frequently Used)置换算法2、页面缓冲算法(PBA:Page Buffering Algorithm) P166-169六、虚拟存储器的性能问题缺页次数是影响性能的一个主要因素。
1、影响缺页次数的因素•分配给进程的物理块数•页面本身的大小•程序的编制方法•页面淘汰算法2、抖动问题在虚存中,页面在内存与外存之间频繁调度,以至于调度页面所需时间比进程实际运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃。
这种现象称为颠簸或抖动。
原因:•分配给进程的物理页面数太少•页面淘汰算法不合理第四节请求分段存储管理方式一、硬件支持1、改进段表:P171-1722、增加缺段中断机构,每当进程要调用或访问的一个逻辑段目前不在内存,就产生缺段中断。
3、改变地址变换过程二、段的共享与保护1、共享段表为实现段的共享,系统建立一个共享段表,每个共享段在其中占一个表项。
2、共享段的存储分配•对第一个请求使用该共享段的进程,由系统为该共享段分配一物理区,再把共享段调入该区,同时将该区的有关信息填入请求进程的段表的相应项中。
还须在共享段表中增加一表项,填写有关信息,把count 置为1;•当又有其它进程请求调用该共享段时,由于该共享段已被调入内存,故此时无须再为该段分配内存,而只需在请求进程的段表中,增加一表项,填写该共享段的有关信息;在共享段的段表中,填上请求进程的进程名、存取控制等信息,再执行count∶=count+1操作,以表明增加了一个进程共享该段。
3、共享段的存储回收当共享此段的某进程不再需要该段时,可释放该段:执行count∶=count-1操作。
若结果为0,则须由系统回收该共享段的物理内存,以及取消在共享段表中该段所对应的表项,表明此时已没有进程使用该段;否则(减1结果不为0),则只需要取消调用进程在共享段表中的有关记录。
4、存储保护•越界检查----地址变换中的地址越界检查•存取控制检查----利用段表的存取控制字段•环保护机构简介----每个进程按权限确定一个环编号,P184~185本章作业:P177 5、13、18、26。