操作系统实验五虚拟存储器管理
第5章虚拟存储器
5.3 请求式分页存储管理方式
1) 一般来说,一个页表包括以下信息:
页号 块号 状态位 修改位 访问位 外存地址 存取控制 其它
(1) 状态位:用于指示该页是否已调入内存,供程序访问时参考。 (2) 访问字段:用于记录本页是否被访问,供选择换出页面时参考。 (3) 修改位:表示该页在调入内存后是否被修改过,供置换页面时 参考。 (4) 外存地址:用于指出该页在外存上的地址,通常是物理块号, 供调入该页时参考。
5.3 请求式分页存储管理方式
1、硬件支持
① 请求分页的页表机制,它是在纯分页的页表机制上
增加若干项而形成的,作为请求分页的数据结构; ② 缺页中断机构,即每当用户程序要访问的页面尚未 调入内存时,便产生一缺页中断,以请求OS将所缺的页 调入内存;
③ 地址变换机构,它同样是在纯分页地址变换机构的
基础上发展形成的。
5 虚拟存储器管理
前面介绍的分区(固定分区和可变分区)存储 管理和分页、分段存储管理技术,都要求作业 在执行之前必须将其全部信息装入内存,并且 作业的逻辑地址空间不能比内存空间大,否则 该作业就无法装入内存。 为了解决大作业与小内存的矛盾,人们采用了 虚拟存储管理技术,对内存在逻辑上进行扩充。
5 虚拟存储器
其理由是:最早调入内存的页,不再被使用的可 能性比近期调入内存的大。 这种算法简单,实现容易。 它是一种最直观,性能最差的算法,它有BELADY
操作系统 第5章 虚拟存储器
5.2 请求分页存储管理方式
可变分配全局置换
思路:每个进程预先分配一定数目的物理块,同时 OS也保持一个空闲物理块队列。
策略:当缺页时,首先将对OS所占有的空闲块进行 分配,从而增加了各进程的物理块数。当OS的空闲 块全部用完,将引起换出操作。
如果内存中有空闲物理块,则分配一页,将页Q装入内 存,并修改页表。
若此时内存中没有空闲物理块,则发生页面置换。
5.2 请求分页存储管理方式 缺页中断处理
程序请求访问一页 开始
保留CPU现场
页号>页表长度?
是
地址变换机构
从外存中找到缺页
内存满否?
否
是 选择一页换出
否
该页被修改否?
是 将该页写回外存
请求调页策略 进程运行中发现要访问的页面不在内存,便立即提 出请求,由OS将其所需页面调入内存。 目前的虚拟存储器中大多采用此策略
可变分配局部置换
思路:系统根据缺页率动态调整各进程占有的物理块 数目,使其保持在一个比较低的缺页率状态下。
特点:使大部分进程可以达到比较近似的性能。
5.2 请求分页存储管理方式
物理块分配算法 在采用固定分配策略时,可使用下列方法
平均分配算法:将系统中所有可供分配的物理块平均分 配给各个进程
计算机操作系统课件:第5章存储器管理03-虚拟存储器
院
|
|
0,3,0,4,2,3,0,3,2,1,2,0,
景
雨
1,7,0,1。请采用LRU页面置换算法,
求出在访问过程中发生缺页中断的次数
及缺页率(缺页次数/总访问次数 * 100% )。
3.页面置换算法
3).最近最久未使用算法(LRU)
大
N=3
页面访问的次序
外
软
初始 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
雨
NULL
11133 3 3 3 3331 1 1 1 1 1 1
缺 页
9次 × × × × √ × √ × √ √ × √ √ × √ √ √ ×
√
√
(新装入的页号放在表格中被淘汰页的位置)
缺页率为9/20*100%=45%
3.页面置换算法
2).先进先出算法 (FIFO)
大
外 软
选择置换装入最早的页面。可通过
件
学 链表来表示各页的装入时间先后。
院
|
|
景
性能较差。较早调入的页往往是经
雨
常被访问的页,这些页在FIFO算法下被
反复调入和调出。并且有Belady现象。
3.页面置换算法
2).先进先出算法 (FIFO)
大
Belady 现 象 : 采 用 FIFO 算 法 时 , 如 果
虚拟存储器管理实验报告
淮海工学院计算机科学系实验报告书
课程名:《操作系统》
题目:虚拟存储器管理
页面置换算法模拟实验
班级:
学号:
姓名:
一、实验目的与要求
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点。
操作系统---虚拟存储器管理
4
虚拟存储空间
采用软件技术,借助于外存从逻辑上对内存容量 进行扩充,使用户感觉到好象在使用一个比实际容量 大得多的内存空间,这个经过扩充的存储空间称为虚 拟存储空间。存储器称为虚拟存储器。 特征 ●离散性:采用离散的分配方式。
●多次性:一个作业被分成多次调入内存。
●对换性:作业在运行的过程中被换进、换出。 ●虚拟性:从逻辑上扩充内存容量。
33
调入时机的选择
一、预调页策略 1. 引入原因 在外存上查找所缺的页,需经历较长的时间,如果进程的许 多页是存放在外存的一个连续区域中,一次调入若干个相邻的页, 会比每次调入一页更高效。 2. 基本思想 将那些预计在不久之后便会被访问的程序或数据所在页面 预先调入内存。 3. 性能分析
如果调入的一批页面中的大多数都未被访问,则是低效的, 目前只应用于首次调入进程。
14
课堂练习:对换
15
一、选择题
1. 对外存对换区的管理应以(A)为主要目标;对外存 文件区的管理应以(B)为主要目标。
A,B:(1)提高系统吞吐量;(2)提高存储空间 的利用率;(3)降低存储费用;(4)提高换入换出速度; 二、问答题 1. 在系统中引入对换会带来哪些好处?
2. 为实现对换,系统应具备哪几方面的功能?
请同学们将手机关闭或置于 振动保持课堂安静
1
第二篇
存储器管理
虚拟存储器管理
沈阳工程学院
学生实验报告
(课程名称:操作系统)
实验题目:虚拟存储器管理
班级计算机131 学号2013414126 姓名杨光成地点实训F608 指导教师吕海华王黎明
实验日期: 2015 年 5 月26 日
一、实验题目
模拟分页式虚拟存储管理实验。
二、实验要求
编写一段程序来模拟页面置换算法。要求能分别显示最佳(Optimal)置换算法、先进先出(FIFO)页面置换算法和最近最久未使用(LRU)置换算法的置换过程。
三、实验目的
通过本实验帮助学生理解虚拟存储器的工作方法。了解分页式存储管理里中各页面置换算法是怎样实现的,各算法有怎样的优缺点。
四、实验原理分析
⑴页面置换算法是在分页存储管理方式中为了合理的将进程运行所需的页面调入内存而产生的算法。一个好的页面转换算法,应具有较低的页面更换频率。最常见的页面置换算法有最佳(Optimal)置换算法、先进先出(FIFO)页面置换算法和最近最久未使用(LRU)置换算法。
⑵算法的说明
最佳置换算法:选择以后永不使用或是在最长时间内不再被访问的页面作为被淘汰的页面。这种算法通常可保证获得最低的缺页率,但因为内存中哪个页面是以后永不使用的是无法预知的,所以该算法是无法实现的。
先进先出页面置换算法:选择内存中驻留时间最长的页面作为被淘汰的页面。该算法实现简单,只需将调入内存中的页面链成一个队列,并设置一个指针指向最老的页面即可。
最近最久未使用置换算法:选择最近最久未使用的页面作为被淘汰的页面。该算法需要为每个页面设置一个访问字段用来记录页面上次被访问的时间,通过这个时间来决定淘汰哪一个页面。
第5章 虚拟存储器 (1)
虚拟存储器概述
虚拟存储器的实现方法
• 2.请求分段系统
• 在分段系统的基础上,增加了请求调段及分段置换功能。用户程序只要装入少 数段的程序和数据即可启动运行。以后通过调段功能和段的置换功能将暂不运行的 段调出,再调入即将运行的段。置换以段为单位进行。为了实现请求分段,系统同 样需要必要的硬件和软件支持。
• 上述的一次性及驻留性使得许多在运行中暂时不用的程序(数据)占据了大 量的内存空间,而一些需要运行的作业又无法装入内存运行,这是在浪费内存。
虚拟存储器概述
常规存储管理方式的特征和局部性原理
• 2.局部性原理 • 程序运行时存在局部现象。程序在执行时,在一较短的时间内,程序的执
行仅局限于某个部分,相应地,它所访问的存储空间也局限于某个区域。
虚拟存储器概述
5.1.3 虚拟存储器的实现方法 P167
• 在虚拟存储器中,允许将一个作业分多次调入内存。所以,虚拟存储器的 实现,都建立在离散分配存储管理方式的基础上。目前,所有的虚拟存储器都 是采用下述方式之一实现的。
• 1.分页请求系统
• 分页请求是在分页的基础上增加了请求调页功能和页面置换功能所形成的 页式虚拟存储系统。它允许用户程序只装入少数页面的程序(及数据)即可启 动运行。以后,再通过调页功能及页面置换功能陆续地把即将运行的页面调入 内存,同时把暂不运行的页面换出到外存上。置换时以页面为单位;为了能实 现请求调页和页面置换功能,系统必须提供硬件支持和请求分页的软件。
操作系统第五章虚拟存储器-答案
操作系统第五章复习题
一、选择题
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 )
操作系统第5章虚拟存储器
(2) 有大量作业要求运行,但由于内存容量不足以容纳 所有这些作业,只能将少数作业装入内存让它们先运行,而 将其它大量的作业留在外存上等待。
2
第五章 虚 拟 存 储 器
5.1.1 常规存储管理方式的特征和局部性原理 1. 常规存储器管理方式的特征 我们把前一章中所介绍的各种存储器管理方式统称为传
33
第五章 虚 拟 存 储 器
图5-5 LRU页面置换算法
34
第五章 虚 拟 存 储 器
2. LRU置换算法的硬件支持 1) 寄存器 为了记录某进程在内存中各页的使用情况,须为每个在 内存中的页面配置一个移位寄存器,可表示为
R = Rn-1Rn-2Rn-3 … R2R1R0
35
第五章 虚 拟 存 储 器
统存储器管理方式,它们全都具有如下两个共同的特征: (1) 一次性 (2) 驻留性
3
第五章 虚 拟 存 储 器
2. 局部性原理 程序运行时存在的局部性现象,很早就已被人发现,但 直到1968年,P.Denning才真正指出:程序在执行时将呈现出 局部性规律,即在一较短的时间内,程序的执行仅局限于某 个部分,相应地,它所访问的存储空间也局限于某个区域。
4
第五章 虚 拟 存 储 器
局限性又表现在下述两个方面: (1) 时间局限性。 (2) 空间局限性。
虚拟存储器管理实验报告
虚拟存储器管理实验报告
防灾科技学院实验报告
系别灾害信
息工程
系
专
业
班
级
0950412 学号095041219
学生姓名郑平贞
实
验
日
期
2011-12-8 成绩
课程名称计算机
操作系
统
实
验
题
目
虚拟存储器管理
实验记录
实验目的:
1 理解虚拟存储器的概念
2 掌握分页式存储管理地址转换和缺页中断
实验环境:
Windows XP VC++6.0
实验内容:
1 模拟分页式存储管理中硬件的地址转换和产生缺页中断
2 用先进先出页面调度算法处理缺页中断
实验过程:
1.实验设计
(1)模拟分页式存储管理中硬件的地址转换和产生缺页中断。
分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存。作业执行时,指令中的逻辑地址指出了参加运算的操作存放的页
号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式“绝对地址=块号×块长+单元号”计算出欲访问的主存单元地址。如果块长为2 的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而
成绝对地址。若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,有操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。设计一个“地址转换”程序来模拟硬件的地址转换
工作。当访问的页在主存时,则
形成绝对地址,但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主存时,则输出“* 该页页号”,表示产生了一次缺页中断。
操作系统管理_-_虚拟存储器_实验报告_代码
淮海工学院计算机工程学院实验报告书
课程名:《操作系统原理》
题目:虚拟存储器
班级:
学号:
姓名:
评语:
成绩:指导教师:
批阅时间:年月日
一、目的与要求
(一)目的
由于超大规模集成电器电路(VLSI)技术的发展,使存贮器的容量不断扩大,价格大幅度下降。但从应用角度看,存贮器的容量和成本总会受到一定的限制。所以,提高存贮器的使用效率始终是操作系统研究的重要课题之一,虚拟存贮器技术是用来扩大主存容量的一种重要的方法。
本实习要求学生独立地用高级语言编写几个常用的存贮器分配算法,并能设计一个存贮管理的模拟程序,能对各种算法进行分析比较,评测其性能优劣,从而加深对这些算法的了解。
(二)要求
为了比较真实地模拟存贮器管理,可预先生成一个大致符合实际情况的指令地址流。然后,通过模拟这样一种指令序列的执行来计算和分析比较各种算法的访问命中率。
二、示例
1.题目
本示例给出采用页式分配存贮器管理方案,并通过分析、计算不同页面淘汰算法情况下的访问命中率来比较各种算法的优劣,另外也考虑改变页面尺寸大小和实际存贮器容量对计算结果的影响,从而可为选择好的算法、合适的页面尺寸和存贮器实际容量提供依据。
本程序是按下述原则生成指令序列的:
(1)50%的指令是顺序执行的。
(2)25%的指令是均匀分布在前地址部分。
(3)25%的指令是均匀分布在后地址部分。
示例中选用最佳淘汰算法(OPT)和最近最少使用页面淘汰算法(LRU)计算页面命中率。公式为:
页面失败次数
命中率=1-───────
页地址流长度
假定虚拟存贮容量为32K,页面尺寸从1K到8K,实存容量从4页到32页。2.算法与框图
第5章 虚拟存储器管理资料
存
44 4 4
55 5 5 1 1
储
333
3 4 4 4 4 5 缺页中断率:
器 管 理
22 1
22 3 3 3 3 11 1 2 2 2
f = 10 / 12 = 83 %
++ + +
== = = = =
19
操 作
特点:
系 统
1)这种算法实现简单,只是在按线性顺序访问地址
空间时才是理想的,否则效率不高。特别是遇到循环
章
存储的位置
虚
选择淘汰出主存的信息——置换算法
拟
存 储
5. 虚拟存储器的实现方法
器
请求分页存储管理
管
理
请求分段存储管理
请求段页式存储管理
6
操
5.2 请求分页存储管理
作 系
一、请求分页技术基本思想
统
当一个用户(或进程)的程序调入系统运行时,只装入这个
用户程序的一部分页就启动运行。在运行的过程中,若发现
过的页淘汰。
第
五
这种算法认为某一页被访问过,它很可能马上还要
章
虚
被访问,相反若某页长期未被使用,则它可能在最近
拟 存
的将来一段时间也不会被使用。
储
器
管
理
21
当分配的页面数为3时:
操作系统管理-虚拟存储器-实验报告-代码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 // 虚拟存储器大小
虚拟存储器管理实验
虚拟存储器管理
(一)实验目的
1.理解虚拟存储器概念。
2.掌握分页存储管理地址转换和缺页中断。
(二)实验内容
1.模拟分页式存储管理中硬件的地址转换和产生缺页中断。2.用先进先出(FIFO)页面调度算法处理缺页中断。(三)实验准备
1.设计一个“地址转换”程序来模拟硬件的地址转换工作。2.FIFO页面调度程序。
(四)程序示例
实验五存储管理实验报告
计算机与信息技术学院综合性实验报告
一、实验目的
通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。
二、实验仪器或设备
微型计算机、Linux操作系统、dev C++
三、总体设计
1、通过随机数产生一个指令序列,共320条指令。其地址按下述原则生成:
①50%的指令是顺序执行的;
②25%的指令是均匀分布在前地址部分;
③25%的指令是均匀分布在后地址部分;
具体的实施方法是:
A.在[0,319]的指令地址之间随机选取一起点M;
B.顺序执行一条指令,即执行地址为M+1的指令;
C.在前地址[0,M+1]中随机选取一条指令并执行,该指令的地址为M’;
D.顺序执行一条指令,其地址为M’+1;
E.在后地址[M’+2,319]中随机选取一条指令并执行;
F.重复A—E,直到执行320次指令。
2、指令序列变换成页地址流,设:
①页面大小为1K;
②用户内存容量为4页到32页;
③用户虚存容量为32K。
在用户虚存中,按每页存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:
第0条~第9条指令为第0页(对应虚存地址为[0,9]);
第10条~第19条指令为第1页(对应虚存地址为[10,19]);
…………
第310条~第319条指令为第31页(对应虚存地址为[310,319]);
按以上方式,用户指令可组成32页。
3、计算并输出下述算法在不同内存容量下的命中率。
A. FIFO先进先出置换算法;
B. LRU最近最久未使用置换算法;
C. NUR最近未使用置换算法。
命中率=1-页面失效次数/页地址流长度
虚拟存储器管理实验报告
淮海工学院计算机科学系实验报告书
课程名:《操作系统》
题目:虚拟存储器管理
页面置换算法模拟实验
班级:
学号:
姓名:
一、实验目的与要求
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点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统实验
实验五虚拟存储器管理
学号**********
姓名方茹
班级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 。而把用户的逻辑地址空间分成与存储块大小相等的若干页,依次为 0,1,2,3,,, ,m页。当作业提出存储分配请求时,系统首先根据存储块大小把作业分成若干页。每一页可存储在内存的任意一个空白块内。此时,只要建立起程序的逻辑页
和内存的存储块之间的对应关系,借助动态地址重定位技术,原本连续的用户作
业在分散的不连续存储块中,就能够正常投入运行。
先进先出页面调度算法根据页面进入内存的时间先后选择淘汰页
面,先进入内存的页面先淘汰,后进入内存的后淘汰。本算法实现时需
要将页面按进入内存的时间先后组成一个队列,每次调度队首页面予以
淘汰。
程序流程图。
1、地址转换程序流程图
开始
取一条指令
取指令中访问的页号
查页表
Y N
该页标志 =1?
形成绝对地址
输出“ * ”页号表示
发生缺页中断
输出绝对地址
Y
有后续指令?
取下一条指令
N
结束
2、FIFO页面置换算法程序流程图
开始
取一条指令
取指令中访问的页号
查页表
Y N(产生缺页中断)
该页标志 =1 ?
形成绝对地址
Y
是内存指令?
置该页修改标志为 1 N 模拟
硬件
地址输出绝对地址转换
N
有后继指令?
N 当前页是否
被更新?
Y
结束
取下一条指令
Y
将该页更新标志置为
模拟
FIFO
页面调置换出当前页
度
输出被置换出去的页面
显示被调入的页面
修改页表设置被调入页面的相关属性
程序及其注释
#include
#include
#define SizeOfPage 100
#define SizeOfBlock 128
#define M 4// 主存中放 4 个页面
struct info// 页表信息结构体
{
bool flag;// 页标志, 1 表示该页已在主存,0 表示该页不在主存long block;// 块号
long disk;// 在磁盘上的位置
bool dirty;// 更新标志
}pagelist[SizeOfPage];
long po;// 队列标记
long P[M];// 假设内存中最多允许M 个页面
void init_ex1()
{
memset(pagelist,0,sizeof(pagelist));// 内存空间初始化
/* 分页式虚拟存储系统初始化*/
pagelist[0].flag=1;
pagelist[0].block=5;
pagelist[0].disk=011;
pagelist[1].flag=1;
pagelist[1].block=8;
pagelist[1].disk=012;
pagelist[2].flag=1;
pagelist[2].block=9;
pagelist[2].disk=013;
pagelist[3].flag=1;