操作系统实验5_虚拟存储器管理
实习五 虚拟存储器实验报告
实习五虚拟存储器实验报告一、实验目的本次虚拟存储器实验旨在深入理解计算机系统中虚拟存储器的工作原理和机制,通过实际操作和观察,掌握虚拟存储器的相关概念和技术,包括页式存储管理、地址转换、页面置换算法等。
同时,培养我们的实践能力和问题解决能力,为今后学习和工作中涉及到的计算机系统相关知识打下坚实的基础。
二、实验环境本次实验使用的操作系统为 Windows 10,开发工具为 Visual Studio 2019,编程语言为 C++。
三、实验原理1、虚拟存储器的概念虚拟存储器是一种利用硬盘等辅助存储器来扩充主存容量的技术。
它将程序和数据按照一定的页面大小划分,并在需要时将页面从硬盘调入主存,从而实现了使用有限的主存空间运行较大规模的程序。
2、页式存储管理页式存储管理将主存和辅存空间都划分为固定大小的页面。
程序的地址空间被分成若干页,主存也被分成相同大小的页框。
通过页表来记录页面和页框的对应关系,实现地址转换。
3、地址转换当 CPU 执行指令时,给出的是逻辑地址。
通过页表将逻辑地址转换为物理地址,才能在主存中访问相应的数据。
4、页面置换算法当主存空间不足时,需要选择一个页面换出到硬盘,以腾出空间调入新的页面。
常见的页面置换算法有先进先出(FIFO)算法、最近最少使用(LRU)算法等。
四、实验内容与步骤1、设计并实现一个简单的页式存储管理系统定义页面大小和主存、辅存的容量。
实现页表的数据结构,用于记录页面和页框的对应关系。
编写地址转换函数,将逻辑地址转换为物理地址。
2、实现页面置换算法分别实现 FIFO 和 LRU 页面置换算法。
在页面调入和调出时,根据相应的算法选择置换的页面。
3、测试和分析实验结果生成一系列的访问序列,模拟程序的运行。
统计不同页面置换算法下的缺页次数和命中率。
分析实验结果,比较不同算法的性能。
五、实验过程与结果1、页式存储管理系统的实现我们将页面大小设置为 4KB,主存容量为 16MB,辅存容量为 1GB。
操作系统存储器管理实验心得
操作系统存储器管理实验心得操作系统存储器管理实验心得实验是我们每个学生都要经历的,通过这次实验使我更深刻地了解到了计算机硬件设备的组成和工作原理。
它给我的感触颇多:首先让我体会到要想当一名优秀的电脑维修人员必须具有良好的基础知识。
只有熟悉硬件设备才能在短时间内判断出故障并排除。
其次我也认识到电脑发展迅速,仅靠掌握操作系统及软件应用方面的知识还不够,还要懂得硬件的结构、性能等。
再者通过本次实验,对我们电子专业的学生来说更加有益。
学习掌握了更为高级的知识后可以在社会上做一些相关的工作,比如程序开发、硬件维护等。
而且将自己所学的知识真正运用于实践中,是对理论知识最好的检验。
而且,在实践中培养的动手能力和团队精神也是非常重要的。
第一节课时老师讲了一些关于内存的知识,让我们了解了什么是虚拟存储器,其实就是我们的硬盘。
但是现代电脑已经不单纯局限于传统意义上的硬盘和光驱,我们的内存越来越大,越来越快,已达到惊人的几十 GB。
它们各司其职,共同保证着你的电脑安全顺利的工作。
它们之间的配合也至关重要。
现在随便拿一台新买回来的笔记本电脑进行检测都会发现它们在内存和 CPU 之间还装了一块很小的内存芯片。
其实,这样的内存芯片是用来临时存放我们正在编写的程序,防止突然死机造成损失。
第二节课老师教授我们如何去识别和判定硬盘坏道,虽然我觉得很难,因为以前从未接触过此类问题。
看来在平时学习中积累相关的经验很重要啊!老师先让我们通过 DOS 命令判断自己电脑中的硬盘数据是否正常。
通过学习和练习我终于学会了通过命令“ chkdsk”对硬盘数据进行修复,在学习的过程中遇到许多困难,但是我坚持下来了,努力克服一切困难完成了任务。
学习是一个循序渐进的过程,刚开始根本不知道如何去查看自己硬盘的健康状况。
后来经过请教了其他班的同学才慢慢弄清楚怎么查看。
这种东西真是千变万化,让人捉摸不透。
俗话说磨刀不误砍柴功,无论干哪一行没有扎实的基础知识肯定是寸步难行的。
四川大学操作系统实验报告
四川⼤学操作系统实验报告实验报告实验名称:Windows虚拟存储器管理实验时间:2014 年 5 ⽉28 ⽇实验⼈员:张熙(姓名)2012141461286 (学号)____2012____(年级)实验⽬的:1、了解Windows 2000/XP的内存管理机制,掌握页式虚拟存储技术。
2、理解内存分配原理,特别是以页⾯为单位的虚拟内存分配⽅法。
3、学会使⽤Windows 2000/XP下内存管理的基本API函数。
实验环境:VC6.0实验步骤:1、下载virtumem.cpp;2、建⽴⼯程,将virtumen.cpp加⼊;3、编译⼯程,观察结果,确信六种状态都出现⾄少⼀次,必要时可改程序,⽅便观察结果;4、看懂程序,按要求另写⼀段⼩程序;5、编译,执⾏,观察结果。
6,总结。
实验陈述:1、基础知识:pagefile.sys⽂件的位置在:____系统盘的根⽬录下,属性为系统隐藏⽂件此⽂件的作⽤:__以磁盘⽂件的形式来存储没有装⼊内存的程序和数据⽂件部分改变此⽂件⼤⼩的⽅法:⽅法是:右击“我的电脑”,依次选择“属性”->“⾼级”->“性能-选项”->“⾼级”->“虚拟内存-更改”虚拟地址空间中的页⾯分为:提交页⾯,___保留页⾯________,______空闲页⾯_______页⾯的操作可以分为:保留、提交、回收、释放、加锁、解锁2、编程准备.页⾯属性是在结构体______MEMORY_BASIC_INFORMA TION_______的字段AllocationProtect 和字段Protect 中体现出来的。
简述VirtualFree,VirtualPtotect,VirtualLock,VirtualUnlock,VirtualQuery的作⽤:VirtualFree:解除已被提交的虚存或者释放被保留或者提交虚拟地址空间。
VirtualFree还可以⽤来对已提交的虚拟地址页解除提交,使得该段地址空间变成保留状态。
操作系统原理第5章 存储管理
• ⑶最佳适应算法
• 最佳适应算法的空闲链是按空闲区从小到大顺序排 列。为进程选择分区时总是寻找其大小最接近进程 所要求的存储区域。所谓“最佳”是指每次为进程 分配内存时,总是把能满足要求、又是最小的空闲 分区分配给进程,避免“大材小用”。
• 因为每次分配后所切割下来的剩余部分总是最小的, 这样将加速碎片的形成。
• ①如果被回收空闲分区没有空闲伙伴分区,那么保留该分区为一 个独立的空闲分区,否则执行②;
• ②合并回收分区及其伙伴分区,从而得到一个尺寸(2I+1)更大的 回收空闲分区,转移到①;
一个伙伴系统内存分配与回收的例子
• 伙伴系统克服了固定分区和动态分区存储管理技术的缺陷。但是伙伴 系统存在一个问题,即内存空间需要不断地进行分裂和合并,频繁的 伙伴分区合并操作会浪费很多时间。
• ③内存分配原则,以页帧为单位来分配内存,将进程若干个逻辑上连续的 页面装入若干个离散的页帧中,由页表提供进程的页号到存储空间帧号的 映射。
5.2.4伙伴系统
• 其实现原理如下: • 一个伙伴系统内存的用户可用空间为2U。进程申请存储空间时,
系统总是为其分配大小为2I的一个空闲分区。其中S≤I≤U,2S是系 统允许的最小分区尺寸。在实际操作系统中,最小分区尺寸一般 为212。 • 如果进程申请的存储空间大小为K,且2I-1<K≤2I,则将整个2I大小的 分区分配给该进程;否则,该分区被分割成两个大小相等的伙伴 分区,大小为2I-1;再判断K是否满足条件:2I-2<K≤2I-1,若满足条件, 则将两个伙伴中的任何一个分配给该进程。否则,将其中一个伙 伴又分成两个大小相等的伙伴分区;此过程一直继续进行,直到 产生的分区满足条件I-J≥S并2I-J-1<K≤2I-J,将2I-J大小的分区分配给该 进程;当I-J-1<S时,系统不再分割成两个大小相等的伙伴分区,将 2S大小的分区分配给该进程。 • 当进程执行完毕,释放一个尺寸为2I的分区时,系统用下面的算法 回收该分区。
操作系统---虚拟存储器管理
作业1
空闲区 作业1 运行 进驻内存 空闲区
作业2
作业1被系统调 空闲区 出,进入外存, 作业2调入内存 运行 作业3 作业2 空闲区
出 , 调 入 作 业 3 运 行 将 作 业 2 的 部 分 内 容 换
作业1 作业3 作业3 作业2 作业1运行完毕, 将作业3的换出 部分重新装入 空闲区 将作业3的部分 内容换出,再 次调入作业1 运行
24
请求分页存储管理的实现
问题一:如何知道作业中的某一部分所在的位置?
【解答】 修改数据结构——页表。 需要在页表中添加相应的字段: 若页面在内存:给出物理块号; 若页面在外存:应给出在外存中的位臵; 为每个作业设臵新的页表,记录作业中的某一页在 虚拟存储空间的位臵。如图所示: 页号 号 物理块号 状态位 访问字段 修改位 外存地址
5
内存扩充技术
授课内容:
覆盖技术
对换技术
虚拟存储技术
6
教学目的和要求
通过本讲的学习,学生将能够:
了解内存扩充技术 描述常规存储管理方式的特征和程序局部性原理 给出虚拟存储器的定义,并理解虚拟存储器的特征 了解请求分页存储管理方式及实现 了解请求分段存储管理方式及实现 了解请求段页存储管理方式及实现 了解LINUX系统的存储器管理策略
14
课堂练习:对换
15
一、选择题
1. 对外存对换区的管理应以(A)为主要目标;对外存 文件区的管理应以(B)为主要目标。
A,B:(1)提高系统吞吐量;(2)提高存储空间 的利用率;(3)降低存储费用;(4)提高换入换出速度; 二、问答题 1. 在系统中引入对换会带来哪些好处?
2. 为实现对换,系统应具备哪几方面的功能?
虚拟存储管理实验报告
虚拟存储管理实验报告实验概述虚拟存储管理实验是操作系统课程中的一项重要实验,旨在通过模拟内存管理中的分页机制和页面置换算法,深入理解操作系统中的虚拟内存管理技术。
本实验主要包括以下几个关键点:- 模拟内存的分页机制- 实现页面置换算法- 分析不同页面置换算法的性能指标实验环境本次实验基于C语言和Linux操作系统进行实现,使用gcc编译器进行编译和调试。
实验过程及实现细节在本次实验中,我们实现了一个简单的虚拟内存系统,主要包括以下几个模块:页面管理、页面分配、页面置换和性能分析。
下面对每个模块的实现细节进行详细描述。
页面管理页面管理模块主要负责管理虚拟内存和物理内存之间的映射关系。
我们采用了分页机制进行管理,将虚拟内存和物理内存划分为固定大小的页面。
页面的大小由实验设置为4KB。
页面分配页面分配模块负责分配物理内存空间给进程使用。
我们使用一个位图作为物理内存管理的数据结构,记录每个页面的使用情况。
在每次页面分配时,我们会查找位图中第一个空闲的页面,并将其分配给进程。
页面置换页面置换模块是虚拟存储管理中的核心算法,主要用于解决内存中页面不足时的页面置换问题。
本次实验中我们实现了两种常用的页面置换算法:FIFO(先进先出)和LRU(最近最少使用)算法。
FIFO算法是一种简单的页面置换算法,它总是选择最早被加载到物理内存的页面进行置换。
LRU算法是一种基于页面访问历史的算法,它总是选择最长时间未被访问的页面进行置换。
性能分析性能分析模块主要用于评估不同的页面置换算法的性能指标。
我们使用了缺页率(Page Fault Rate)和命中率(Hit Rate)作为评价指标。
缺页率表示物理内存中的页面不能满足进程请求的比例,命中率表示进程请求的页面已经在物理内存中的比例。
实验结果为了评估不同的页面置换算法的性能,在实验过程中,我们通过模拟进程的页面访问序列,统计页面置换次数、缺页率和命中率等指标。
以一个包含100个页面访问请求的序列为例,我们分别使用FIFO算法和LRU 算法进行页面置换。
虚拟存储器管理实验报告书
淮海工学院计算机科学系实验报告书课程名:《操作系统》题目:虚拟存储器管理页面置换算法模拟实验班级:学号:姓名:一、实验目的与要求1.目的:请求页式虚存管理是常用的虚拟存储管理方案之一。
通过请求页式虚存管理中对页面置换算法的模拟,有助于理解虚拟存储技术的特点,并加深对请求页式虚存管理的页面调度算法的理解。
2.要求:本实验要求使用C语言编程模拟一个拥有若干个虚页的进程在给定的若干个实页中运行、并在缺页中断发生时分别使用FIFO和LRU算法进行页面置换的情形。
其中虚页的个数可以事先给定(例如10个),对这些虚页访问的页地址流(其长度可以事先给定,例如20次虚页访问)可以由程序随机产生,也可以事先保存在文件中。
要求程序运行时屏幕能显示出置换过程中的状态信息并输出访问结束时的页面命中率。
程序应允许通过为该进程分配不同的实页数,来比较两种置换算法的稳定性。
二、实验说明1.设计中虚页和实页的表示本设计利用C语言的结构体来描述虚页和实页的结构。
在虚页结构中,pn代表虚页号,因为共10个虚页,所以pn的取值范围是0—9。
pfn代表实页号,当一虚页未装入实页时,此项值为-1;当该虚页已装入某一实页时,此项值为所装入的实页的实页号pfn。
time项在FIFO算法中不使用,在LRU中用来存放对该虚页的最近访问时间。
在实页结构中中,pn代表虚页号,表示pn所代表的虚页目前正放在此实页中。
pfn代表实页号,取值范围(0—n-1)由动态指派的实页数n所决定。
next是一个指向实页结构体的指针,用于多个实页以链表形式组织起来,关于实页链表的组织详见下面第4点。
2.关于缺页次数的统计为计算命中率,需要统计在20次的虚页访问中命中的次数。
为此,程序应设置一个计数器count,来统计虚页命中发生的次数。
每当所访问的虚页的pfn项值不为-1,表示此虚页已被装入某实页内,此虚页被命中,count加1。
最终命中率=count/20*100%。
虚拟器存储实验报告
一、实验目的1. 了解虚拟器存储的基本概念和原理;2. 掌握虚拟器存储的安装和配置方法;3. 通过虚拟器存储实验,验证虚拟器存储在计算机系统中的作用和优势。
二、实验环境1. 操作系统:Windows 102. 虚拟器软件:VMware Workstation 153. 实验内容:创建虚拟机、配置虚拟机、安装操作系统、配置网络、使用虚拟机存储三、实验步骤1. 创建虚拟机(1)打开VMware Workstation,点击“创建新的虚拟机”;(2)选择“自定义(高级)”,点击“下一步”;(3)选择虚拟机兼容性,点击“下一步”;(4)选择操作系统类型和版本,点击“下一步”;(5)输入虚拟机名称和安装路径,点击“下一步”;(6)分配内存大小,点击“下一步”;(7)创建虚拟硬盘,选择硬盘文件类型和容量,点击“下一步”;(8)选择虚拟机网络类型,点击“下一步”;(9)选择I/O设备设置,点击“下一步”;(10)完成创建虚拟机。
2. 配置虚拟机(1)双击打开虚拟机;(2)选择“自定义设置”;(3)在“硬件”选项卡中,调整虚拟机CPU核心数、内存大小等;(4)在“选项”选项卡中,配置网络连接、USB控制器等;(5)在“虚拟硬盘”选项卡中,调整硬盘容量、存储模式等;(6)在“CD/DVD选项”选项卡中,添加安装操作系统所需的镜像文件;(7)在“其他设置”选项卡中,配置USB控制器、打印机等。
3. 安装操作系统(1)启动虚拟机,进入操作系统安装界面;(2)按照安装向导完成操作系统安装。
4. 配置网络(1)在虚拟机中打开网络管理工具;(2)选择合适的网络连接方式,如桥接模式;(3)配置IP地址、子网掩码、网关等信息。
5. 使用虚拟机存储(1)在虚拟机中安装文件管理器;(2)将需要存储的文件复制到虚拟机中;(3)在虚拟机中打开文件管理器,查看存储的文件。
四、实验结果与分析1. 实验结果通过本次实验,成功创建了一个虚拟机,并安装了操作系统。
操作系统第5章存储管理3虚拟存储
举例:某进程依次访问如下地址:
0100,0432,0101,0612,0102,0103, 0104,0101,0611,0102,0103,0104, 0101,0610,0102,0103,0104,0101, 0609,0102,0105。若页面大小为100, 上述访问串可简化为: 1,4,1,6,1,6,1,6,1,6,1
4 0 3
2 3 4 2 0 4
是 是 是 是 否 是 是 是 是 是 是 否 否
7 0 1 2 3 0 4
结果:缺页次数共10次。
次序
页 面 分 配 情 况 是否 缺页 换出 的页
7
0
1 1
2 2
0
3 3
0 0
4 4
2 2
3 3
0 0
3
2
0
7 7
0
7
1
0
2
1
3
2
0
3
4
0
2
4
3
2
是 是 是 是 否 是 是 是 是 是 是 否 否 7 0 1 2 3 0 4
4 0 3
是 是 是 是 否 是 是 是 是
7 0 1 2
次序
7
0
1
2
0
3
0
4
2
3
0
3
2
页 面 分 配 情 况
是否 缺页 换出 的页
1 2 0 7 7 0 1 7 0
3 0 2 3 1 2
4 0 3
2 4 0
是 是 是 是 否 是 是 是 是 是
7 0 1 2 3
次序
7
0
1
2
0
3
0
操作系统第五章虚拟存储器-答案
操作系统第五章复习题一、选择题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、说明请求分段系统中的缺页中断处理过程。
操作系统管理_-_虚拟存储器_实验报告_代码
淮海工学院计算机工程学院实验报告书课程名:《操作系统原理》题目:虚拟存储器班级:学号:姓名:评语:成绩:指导教师:批阅时间:年月日一、目的与要求(一)目的由于超大规模集成电器电路(VLSI)技术的发展,使存贮器的容量不断扩大,价格大幅度下降。
但从应用角度看,存贮器的容量和成本总会受到一定的限制。
所以,提高存贮器的使用效率始终是操作系统研究的重要课题之一,虚拟存贮器技术是用来扩大主存容量的一种重要的方法。
本实习要求学生独立地用高级语言编写几个常用的存贮器分配算法,并能设计一个存贮管理的模拟程序,能对各种算法进行分析比较,评测其性能优劣,从而加深对这些算法的了解。
(二)要求为了比较真实地模拟存贮器管理,可预先生成一个大致符合实际情况的指令地址流。
然后,通过模拟这样一种指令序列的执行来计算和分析比较各种算法的访问命中率。
二、示例1.题目本示例给出采用页式分配存贮器管理方案,并通过分析、计算不同页面淘汰算法情况下的访问命中率来比较各种算法的优劣,另外也考虑改变页面尺寸大小和实际存贮器容量对计算结果的影响,从而可为选择好的算法、合适的页面尺寸和存贮器实际容量提供依据。
本程序是按下述原则生成指令序列的:(1)50%的指令是顺序执行的。
(2)25%的指令是均匀分布在前地址部分。
(3)25%的指令是均匀分布在后地址部分。
示例中选用最佳淘汰算法(OPT)和最近最少使用页面淘汰算法(LRU)计算页面命中率。
公式为:页面失败次数命中率=1-───────页地址流长度假定虚拟存贮容量为32K,页面尺寸从1K到8K,实存容量从4页到32页。
2.算法与框图(1)最佳淘汰算法(OPT)。
这是一种理想的算法,可用来作为衡量其他算法优劣的依据,在实际系统中是难以实现的,因为它必须先知道指令的全部地址流。
由于本示例中已生成了全部地址流,故可计算最佳命中率。
该算法的准则是淘汰已满页表中以后不再访问或是最迟访问的页。
这就要求将页表中的页逐个与后继指令访问的所有页比较,如后继指令不再访问此页,则把此页淘汰,不然得找出后继指令中最迟访问的页面予以淘汰。
东软操作系统习题及答案(5)
第五章虚拟存储器一、单项选择题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。
操作系统管理-虚拟存储器-实验报告-代码7页
操作系统管理-虚拟存储器-实验报告-代码7页一、实验目的学习操作系统中虚拟存储器的概念,掌握虚拟存储器的实现思路和方式。
二、实验要求在C语言环境下,实现基于分页机制的虚拟存储和页表管理。
三、实验内容1.实现一个虚拟存储器,其中分页大小为4KB,虚拟地址空间大小为4GB(每个进程可以使用的虚拟地址空间)。
物理内存大小为512MB,即实际内存中有128个物理页面。
2.实现页表管理,将虚拟地址映射到物理地址。
3.实现页面替换算法,当物理内存不足时,需要将某些页面从内存中置换出来。
4.实现程序的运行,能够根据页面缺失率输出性能参数。
四、实验步骤1.确定程序设计思路和数据结构。
2.实现虚拟存储器和页表管理。
3.实现页面替换算法。
五、实验代码及解析对于程序设计思路,首先需要确定虚拟存储器和物理内存的大小,以及页面大小。
虚拟存储器大小默认为4GB,物理内存大小为512MB,页面大小为4KB。
其次,需要设计页表数据结构。
页表可以使用一个二维数组表示,其中第一维表示页表项,第二维表示页内地址。
页表项有四个字段,分别为标志位(是否在内存中)、页框号(页面所在的物理页框号)、保护(页面的读写权限)、计数(页面使用情况的计数器)。
第三,需要设计页面替换算法。
本程序采用最近最少使用算法(LRU)作为页面替换算法,当物理内存不足时,选择使用最近最少使用的页面进行替换。
#define PAGE_SIZE 4096 // 页面大小#define VIRTUAL_MEM_SIZE 4 * 1024 * 1024 * 1024 // 虚拟存储器大小#define PHYSICAL_MEM_SIZE 512 * 1024 * 1024 // 物理内存大小#define PAGE_NUM (VIRTUAL_MEM_SIZE / PAGE_SIZE) // 页面总数#define PHYSICAL_PAGE_NUM (PHYSICAL_MEM_SIZE / PAGE_SIZE) // 物理页面数struct page_table_entry {int present; // 是否在内存中(1为在,0为不在)int page_frame; // 页面所在的物理页框号int protect; // 页面的读写权限int count; // 页面使用情况的计数器}struct page_table_entry page_table[PAGE_NUM][PAGE_SIZE]; // 页表虚拟存储器和页表管理需要掌握的是页表的相关数据结构,还有一个重要的点,就是如何将虚拟地址映射到物理地址。
操作系统实验五虚拟存储器管理
操作系统实验实验五虚拟存储器管理学号 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章存储器管理习题与解答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)便于软件版本的修改和更新在采用装入时动态链接方式时,要修改或更新各个目标模块,是件非常容易的事,但对于经静态链接以装配在一起的装入模块,如果要修改或更新其中的某个目标模块时,则要求重新打开装入模块,这不仅是低效的,而且对于普通用户是不可能的。
佛山科学技术学院-操作系统-虚拟存储器-实验报告
实验三虚拟存储器3.1背景知识在Windows 2000环境下,4GB的虚拟地址空间被划分成两个部分:低端2GB提供给进程使用,高端2GB提供给系统使用。
这意味着用户的应用程序代码,包括DLL以及进程使用的各种数据等,都装在用户进程地址空间内 (低端2GB) 。
用户过程的虚拟地址空间也被分成三部分:1)虚拟内存的已调配区 (committed):具有备用的物理内存,根据该区域设定的访问权限,用户可以进行写、读或在其中执行程序等操作。
2)虚拟内存的保留区 (reserved):没有备用的物理内存,但有一定的访问权限。
3)虚拟内存的自由区 (free):不限定其用途,有相应的PAGE_NOACCESS权限。
与虚拟内存区相关的访问权限告知系统进程可在内存中进行何种类型的操作。
例如,用户不能在只有PAGE_READONLY权限的区域上进行写操作或执行程序;也不能在只有PAGE_EXECUTE权限的区域里进行读、写操作。
而具有PAGE_ NOACCESS权限的特殊区域,则意味着不允许进程对其地址进行任何操作。
在进程装入之前,整个虚拟内存的地址空间都被设置为只有PAGE_NOACCESS权限的自由区域。
当系统装入进程代码和数据后,才将内存地址的空间标记为已调配区或保留区,并将诸如EXECUTE、READWRITE和READONLY的权限与这些区域相关联。
如表3-2所示,给出了MEMORY_BASIC_INFORMAITON的结构,此数据描述了进程虚拟内存空间中的一组虚拟内存页面的当前状态,期中State项表明这些区域是否为自由区、已调配区或保留区;Protect项则包含了windows系统为这些区域添加了何种访问保护;type项则表明这些区域是课执行图像、内存映射文件还是简单的私有内存。
VirsualQueryEX() API能让用户在指定的进程中,对虚拟内存地址的大小和属性进行检测。
Windows还提供了一整套能使用户精确控制应用程序的虚拟地址空间的虚拟内存API。
操作系统实验六_虚拟存储器实验报告
操作系统实验六_虚拟存储器实验报告
实验目的:
通过本次实验,了解虚拟存储器的实现原理,以及如何分配虚拟地址和物理地址,实现虚拟存储器管理。
实验内容:
1.按照顺序完成程序代码,以实现对虚拟地址的映射,再间接实现对物理地址的访问。
2.完成不同的页面置换算法,并分析各自的特点。
实验步骤:
1.在实验中实现了给定的伪指令程序,其中包括了虚拟存储器的实现代码。
在页面大小为1K的情况下,每个进程的虚拟地址空间为64K,物理地址空间为16K。
2.在虚拟存储器的实现中,采用了分段式存储器管理模式,其中包括了段描述符表和页表。
其中段描述符表包括了段基址、段长、段类型等信息,而页表则记录了虚拟地址和物理地址的映射关系。
3.实现了三种页面置换算法:LRU、FIFO和随机算法。
其中,LRU算法会选择最近没有使用过的页面进行置换;FIFO算法会按照先进先出原则进行页面置换;随机算法则随机选取一个页面进行置换。
4.通过本次实验,学习了如何通过虚拟地址访问物理地址,并实现了对虚拟存储器的管理。
同时,在实现页面置换算法时,也对不同算法的特点进行了分析。
实验结果:。
操作系统实验(四)实验报告--虚拟内存
操作系统实验(四)实验报告--虚拟内存操作系统实验(四)虚拟内存1、实验题目页面置换算法模拟——OPT、FIFO和LRU算法2、实验目的了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法,如最佳(Optimal)置换算法、先进先出(Fisrt In First Out)置换算法和最近最久未使用(Least Recently Used)置换算法3、实验内容1)OPT算法:需要发生页面置换时,算法总是选择在将来最不可能访问的页面进行置换。
2)FIFO算法:算法总是选择在队列中等待时间最长的页面进行置换。
3)LRU算法:如果某一个页面被访问了,它很可能还要被访问;相反,如果它长时间不被访问,那么,在最近未来是不大可能被访问的。
4、程序代码#include<iostream>#include <cstdlib>#include <time.h>#include <cstdio>#define L 30///页面走向长度最大为30using namespace std;int M=4; ///内存块struct P///定义一个结构体{int num,time;}p[30];int Input(int m,P p[L])///打印页面走向状态{m=30;int i,j;j=time(NULL);///取时钟时间srand(j);///以时钟时间x为种子,初始化随机数发生器cout<<"页面走向: ";for(i=0; i<m; i++){p[i].num=rand( )%10;///产生1到10之间的随即数放到数组p中p[i].time=0;cout<<p[i].num<<" ";}cout<<endl;return m;}void print(P *page1)///打印当前的页面{P *page=new P[M];page=page1;for(int i=0; i<M; i++)cout<<page[i].num<<" ";cout<<endl;}int Search(int e,P *page1 )///寻找内存块中与e相同的块号{P *page=new P[M];page=page1;for(int i=0; i<M; i++)if(e==page[i].num)return i; ///返回i值return -1;}int Max(P *page1)///寻找最近最长未使用的页面用于OPT算法{P *page=new P[M];page=page1;int e=page[0].time,i=0;while(i<M) ///找出离现在时间最长的页面{if(e<page[i].time) e=page[i].time;i++;}for( i=0; i<M; i++)if(e==page[i].time)return i; ///找到离现在时间最长的页面返回其块号return -1;}int Count(P *page1,int i,int t,P p[L])///记录当前内存块中页面离下次使用间隔长度用于OPT算法{P *page=new P[M];page=page1;int count=0;for(int j=i; j<L; j++){if(page[t].num==p[j].num )break;///当前页面再次被访问时循环结束else count++;///否则count+1}return count;///返回count的值}int main(){int c=1;int m=0,t=0;float n=0;///缺页次数m=Input(m,p);///调用input函数,返回m值M=4;P *page=new P[M];///dowhile(c==1||c==2||c==3){int i=0;for(i=0; i<M; i++) ///初试化页面基本情况{page[i].num=0;page[i].time=m-1-i;}cout<<"1:FIFO页面置换"<<endl;cout<<"2:LRU页面置换"<<endl;cout<<"3:OPT页面置换"<<endl;cout<<"按其它键结束程序;"<<endl;cin>>c;if(c==1)///FIFO页面置换///FIFO();{n=0;cout<<" FIFO算法页面置换情况如下: "<<endl;cout<<endl;while(i<m){if(Search(p[i].num,page)>=0) ///当前页面在内存中{cout<<p[i].num<<" "; ///输出当前页p[i].numcout<<" "<<endl;i++; ///i加1}else ///当前页不在内存中{if(t==M)t=0;else{n++; ///缺页次数加1page[t].num=p[i].num; ///把当前页面放入内存中cout<<p[i].num<<" ";print(page); ///打印当前页面t++; //下一个内存块i++; ///指向下一个页面}}}cout<<"缺页次数:"<<n<<" 缺页率:"<<n<<"/"<<m<<" ="<<n/m<<endl;}if(c==2)///LRU页面置换,最近最久未使用{n=0;cout<<" LRU算法页面置换情况如下: "<<endl;cout<<endl;while(i<m){int a;t=Search(p[i].num,page);if(t>=0)///如果已在内存块中{page[t].time=0;///把与它相同的内存块的时间置0for(a=0; a<M; a++)if(a!=t)page[a].time++;///其它的时间加1cout<<p[i].num<<" ";cout<<"不缺页"<<endl;}else ///如果不在内存块中{n++; ///缺页次数加1t=Max(page); ///返回最近最久未使用的块号赋值给tpage[t].num=p[i].num; ///进行替换page[t].time=0; ///替换后时间置为0cout<<p[i].num<<" ";print(page);for(a=0; a<M; a++)if(a!=t)page[a].time++; ///其它的时间加1}i++;}cout<<"缺页次数:"<<n<<" 缺页率:"<<n<<"/"<<m<<" = "<<n/m<<endl;}if(c==3)///OPT页面置换{n=0;cout<<" OPT算法置换情况如下:"<<endl;cout<<endl;while(i<m){if(Search(p[i].num,page)>=0)///如果已在内存块中{cout<<p[i].num<<" ";cout<<" "<<endl;i++;}else///如果不在内存块中{int a=0;for(t=0; t<M; t++)if(page[t].num==0)a++;///记录空的内存块数if(a!=0) ///有空内存块{int q=M;for(t=0; t<M; t++)if(page[t].num==0&&q>t)q=t;///把空内存块中块号最小的找出来page[q].num=p[i].num;///把缺页换过来n++; ///缺页次数加一cout<<p[i].num<<" ";print(page);i++;}else{int temp=0,s;for(t=0; t<M; t++) ///寻找内存块中下次使用离现在最久的页面if(temp<Count(page,i,t,p)){temp=Count(page,i,t,p);s=t;}///把找到的块号赋给spage[s].num=p[i].num;n++;cout<<p[i].num<<" ";print(page);i++;}}}cout<<"缺页次数:"<<n<<" 缺页率:"<<n<<"/"<<m<<" = "<<n/m<<endl;}}///while(c==1||c==2||c==3);return 0;}5、心得体会通过该实验,是我对虚拟内存更加了解,对最佳置换算法、先进先出算法、最近最久算法更加了解。
操作系统原理第5章
第5章 存储管理
• 第二机会算法——Second-Chance Algorithm
分区的分配与回收
1. 固定分区的分配与回收 2. 动态分区的分配与回收 存储分配算法
首次适应算法——first fit algorithm 最佳适应算法——best fit algorithm 最差适应算法——worst fit algorithm 循环首次适应算法——Circular first fit algorithm 3. 动态分区的回收与拼接 4. 几种分配算法的比较
111100033333222
****
******
缺页率=12/17=70.6%
**
• Four Page Frames
70120304230321201
77777333333333222
0000004444444444
111111110000000
22222222221111
****
*
*
*
**
缺页率=9/17=52.9%
(NUR——Not Used Recently或者NRU——Not Recently Used)
引用位(1bit)
附加位(8bit)
若某页的移位寄存器的值为00000000,则该页在8个时间间 隔内没有被使用过。若某页的移位寄存器的值为11111111,则 该页在每个时间间隔内至少使用过1次。
若页A的移位寄存器的值为11000100,页B的移位寄存器的 值为01110111,则淘汰页B。
22
第5章 存储管理
First–In–First–Out (FIFO) Algorithm
• Three Page Frames
123412512345
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五主虚拟存储器管理
一、实验内容
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。
二、实验目的
在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。
用这种办法扩充的主存储器称为虚拟存储器。
通过本实验帮助同学理解在分页式存储管理中怎样实现虚拟存储器。
三、实验题目
本实验有三个题,其中第一题必做,第二、第三题中可任选一个。
第一题:模拟分页式存储管理中硬件的地址转换和产生缺页中断。
[提示]:
(1) 分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。
为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式为:
其中,标志——用来表示对应页是否已经装入主存,标志位=1,则表示该页已经在主存,标志位=0,则表示该页尚未装入主存。
主存块号——用来表示已经装入主存的页所占的块号。
在磁盘上的位置——用来指出作业副本的每一页被存放在磁盘上的位置。
(2) 作业执行时,指令中的逻辑地址指出了参加运算的操作数存放的页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式:绝对地址=块号 块长+单元号
计算出欲访问的主存单元地址。
如果块长为2的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。
按计算出的绝对地址可以取到操作数,完成一条指令的执行。
若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,由操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。
(3) 设计一个“地址转换”程序来模拟硬件的地址转换工作。
当访问的页在主存时,则形成绝对地址,但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。
当访问的页不在主存时,则输出“*该页页号”,表示产生了一次缺页中断。
该模拟程序的算法如图5-1。
(4) 假定主存的每块长度为128个字节;现有一个共七页的作业,其中第0页至第3页已经装入主存,其余三页尚未装入主存;该作业的页表为:
如果作业依次执行的指令序列为:
运行设计的地址转换程序,显示或打印运行结果。
因仅模拟地址转换,并不模拟指令的执行,故可不考虑上述指令序列中的操作。
第二题:用先进先出(FIFO)页面调度算法处理缺页中断。
[提示]:
(1) 在分页式虚拟存储系统中,当硬件发出“缺页中断”后,引出操作系统来处理这个中断事件。
如果主存中已经没有空闲块,则可用FIFO页面调度算法把该作业中最先进入主存的一页调出,存放到磁盘上。
然后再把当前要访问的页装入该块。
调出和装入后都要修改页表中对应页的标志。
(2) FIFO页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。
假定作业被选中时,把开始的m个页面装入主存,则数组的元素可定为m个。
例如:P[0],P[1]…,P[m-1]
其中每一个P[i] (I=0, 1, …, m-1) 表示一个在主存中的页面号。
它们的初值为:
P[0]:=0, P[1]:=1, …, P[m-1]:=m-1
用一指针K指示当要装入新页时,应淘汰的页在数组中的位置,K的初值为“0”。
当产生缺页中断后,操作系统选择P[k]所指出的页面调出,然后执行:
P[k]:=要装入页的页号
k:= (k+1) mod m
再由装入程序把要访问的一页信息装入到主存中。
重新启动刚才那条指令执行。
(3) 编制一个FIFO页面调度程序,为了提高系统效率,如果应淘汰的页在执行中没有修改过,则可不必把该页调出(因在磁盘上已有副本)而直接装入一个新页将其覆盖。
因此在页表中增加是否修改过的标志,为“1”表示修改过,为“0”表示未修改过,格式为:
由于是模拟调度算法,所以,不实际地启动调出一页和装入一页的程序,而用输出调出的页号和装入的页号来代替一次调出和装入的过程。
把第一题中程序稍作改动,与本题结合起来,FIFO页面调度模拟算法如图5-2。
(4) 如果一个作业的副本已在磁盘上,在磁盘上的存放地址以及已装入主存的页和作业依次执行的指令序列都同第一题中(4)所示。
于是增加了“修改标志”后的初始页表为:
按依次执行的指令序列,运行你所设计的程序,显示或打印每次调出和装入的页号,以及执行了最后一条指令后的数组P的值。
(5) 为了检查程序的正确性,可再任意确定一组指令序列,运行设计的程序,核对执行的结果。
图5-2 FIFO页面调度模拟算法
第三题:用最近最少用(LRU)页面调度算法处理缺页中断。
[提示]:
(1) 在分页式虚拟存储系统中,当硬件发出“缺页中断”后,引出操作系统来处理这个中断事件。
如果主存中已经没有空闲块,则可用LRU页面调度算法把该作业中距现在最久没有被访问过的一页调出,存放到磁盘上。
然后再把当前要访问的页装入该块。
调出和装入后都要修改页表中对应页的标志。
(2) LRU页面调度算法总是淘汰该作业中距现在最久没被访问过的那页,因此可以用一个数组来表示该作业已在主存的页面。
数组中的第一个元素总是指出当前刚访问的页号,因此最久没被访问过的页总是由最后一个元素指出。
如果主存只有四块空闲块且执行第一题中提示(4)假设的指令序列,采用LRU页
面调度算法,那么在主存中的页面变化情况如下:
当产生缺页中断后,操作系统总是淘汰由最后一个元素所指示的页,再把要访问的页装入淘汰页所占的主存块中,页号登记到数组的第一个元素中,重新启动刚才那条指令执行。
(3) 编制一个LRU页面调度程序,为了提高系统效率,如果淘汰的页在执行中没有修改过,则可不必把该页调出。
参看第二题中提示(3)。
模拟调度算法不实际地启动调出一页和装入一页的程序而用输出调出的页号和装入的页号来代替。
把第一题中程序稍作改动,与本题结合起来,LRU页面调度模拟算法如图
5-3。
图5-3 LRU页面调度模拟算法
(4) 按第一题中提示(4)的要求,建立一张初始页表,页表中为每一页增加“修改标志”位(参考第二题中提示(4))。
然后按依次执行的指令序列,运行设计的程序,显示或打印每次调出和装入的页号,以及执行了最后一条指令后数组中的值。
(5) 为了检查程序的正确性,可再任意确定一组指令序列,运行设计的程序,核对执行的结果。
四、实验报告
(1) 实验题目(第二题或第三题)。
(2) 程序中使用的数据结构及符号说明。
(3) 打印一份源程序并附上注释。
(4) 打印初始页表、每次调出(要调出一页时)和装入的页号、执行最后一条指令后在主存中的页面
号(即数组的值)。
五、思考题
如果您有兴趣的话,可把两种页面调度算法都做一下,比较两种调度算法的效率(哪种调度算法使产生缺页中断的次数少);分析在什么情况下采用哪种调度算法更有利。