分页存储管理实验报告.docx
- 文档编号:9920400
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:7
- 大小:19.84KB
分页存储管理实验报告.docx
《分页存储管理实验报告.docx》由会员分享,可在线阅读,更多相关《分页存储管理实验报告.docx(7页珍藏版)》请在冰点文库上搜索。
分页存储管理实验报告
分页存储管理实验报告
篇一:
分页存储管理的模拟实验上机报告
分页存储管理的模拟实验上机报告
页面管理的基本原理及方法:
各进程的虚拟空间被划分成若干个长度相等的页(page)。
页长的划分和内存外存之间的数据传输速度以及内存大小等有关。
页式管理还把内存空间也按也的大小划分为页面(pageframe)。
然后把页式虚拟地址与内存页面物理地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。
在作业或进程开始执行之前,把该作业或进程的程序段和数据全部装入内存的各个页面中,并通过页表(pagemappingtable)和硬件地址变换机构实现虚拟地址到内存物理地址的地址映射。
1.内存页面分配
静态页面管理的第一步是为要求内存的作业或进程分配足够的页面。
系统依靠存储页面表,请求表及页表来完成内存的分配工作。
a.页表
页表由页号与页面号组成。
如右图所示
页表的大小由进程或作业的长度决定。
例如,对于一个每页长1k,大小为20k的进程来说,如果一个内存单元存放一个页表项,则只要分配给该页表20个存储单元即可。
页式管理是每个进程至少拥有一个页表。
实验中对页表的定义如下(采用数组形式,数组下标表示页号,数组单元存放与数组下标(页号)相应的页面号):
intpagetable[100]b.请求表(作业申请表)
请求表用来确定作业或进程的虚拟空间的各页在内存中的对应位置。
为了完成这个认为,系统必须知道每个作业或进程的页表起始地址(本实验中假定为0)和长度,以进行内存分配和地址变换。
另外请求表中还包括每个作业或进程所要求的页面数。
请求表整个系统一张,
实验中对请求表的定义如下(采用结构体数组形式,并将页表也作为其中一个成员(即域)):
#defineu5
structapplication_table
{
charname[8];/*作业名*/
intsize;/*作业大小――即将上表中的请求页面数改用字节表示*/intpaddress;/*页表起始地址*/
intlength;/*页表长度――以页面数表示*/
intstate;/*内存的分配状态,以分配的用1表示,未分配的用0表示*/
intpagetable[100];/*页表,放在这里是为了方便虚地址转换及作业撤销的操作*/}application[u];
c.存储页面表(本实验中采用位示图法)
位示图也是整个系统一张,它指出内存各页面是否已被分配出去,以及未分配页面的总数。
在内存中划分一块固定区域,每个单元的每个比特代表一个页面,如果该页面已被分配,则对应比特位置为1,否则为0。
本实验中采用二维数组(16*16)形式存储:
intgraphic[16][16]={{0,0,0,1,1},{0,1,1,0,0},{0,0,0,0,1}}d.分配算法
首先,将位示图初始化,可任选几个单元,
可全部初始化为0.
接着,键盘输入作业名(name)和作业大小(size),大小为1k,所以将作业大小除以页面大小(1k),页面数(即页表长度),搜索空闲页面表看是否有n返回”无法分配”,若有则开始设置页表,将作业名,址页表长度,状态置入请求表,起始地址为页表的第0
然后根据页表,搜索空闲页面表,填入页表中.
2.地址变换
由地址分配方式得知,在一个作业或进程的页表中,连续的页号对应于不连续的页面号.做地址转换时,必须知道所要转换的虚地址(x)以及该虚地址所属作业名(由键盘输入,如有重名的作业,则顺序输出虚地址在各项作业中所对应的物理地址),查页表,对应页号y=x/1024,所求物理地址:
3.作业撤销
键盘输入所要撤销的作业名(如有重名,则都撤销),搜索作业申请表,每遇到作业名相同的,则将作业大小及状态改为0(表示撤销),搜索页表,当作业名相同时,根据页表修改位示图中相应
4.功能模块的选择
实验中采用多分支选择语句(switch)来实现多种功能模块的选择,写在主程序中.
篇二:
分页管理实验报告
XX-XX学年第二学期
操作系统课程实验设计报告
班级网络2班学号XX姓名韩金铖成绩指导教师于复兴
1、实验题目:
(1)模拟请求分页存储管理中的硬件地址转换和产生却页中断的过程。
(2)采用先进先出(或LRU)算法实现分页管理的缺页调度。
2、实验目的:
(1)通过实验模拟请求分页存储管理中的硬件地址转换和产生却页中断帮助理解在分页式存储管理中怎样虚拟存储器。
(2)通过采用先进先出(或LRU)算法实现分页管理的缺页调度帮助理解和掌握模拟分页式虚拟存储管理的缺页中断,帮助自己对请求分页管理的概念有一个清楚的理解。
3、程序设计及实现过程:
(1)请求分页储存管理是把作业的全部信息存在磁盘上,当作业被选中时,可把作业的开始几页先装入主存并启动运行。
为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表格式为:
其中,标志表示对应页是否已经装入主存,“标志=0”表示该页尚未装入主存,“标志=1”表示该页已在主存。
主存块号表示已装入主存的页所占用的块号。
外存地址表示该页在外存的地址。
(2)作业执行完时,指令中的逻辑地址指出了参加运算的操作数存放的页号和单元号,硬件地址转换机构按页号查页表,若该页对应的标志为“1”,则表示该页已在主存。
根据关系式:
绝对地址=块号*块长+单元号。
计算出欲访问的主存单元地址,将块长设成2的整次幂,可把块号作为地址寄存器的高位部分,单元号作为低位部分。
两个拼接形成绝对地址。
按计算出的绝对地址取操作数,完成一条指令的执行。
若访问的页对应标志为“0”,则表示不在主存,这时硬件发缺页中断信号,由操作系统按页表中的该页对应的外存地址把该页装入主存后,执行该指令。
(3)设计一个“地址变换”程序来模拟硬件的地址转换工作。
当访问的页不在主存时,则形成绝对地址后不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行,当访问的页不在主存时,则输出“*”,表示产生了一次缺页中断。
该算法框图如下:
地址变换算法:
假定主存的每块长度为126个字节;现有一个共7页的作业,其中第0页至第3页已装入,其余三页尚未装入主存,该作业的页表为:
运行设计的地址变换机构程序,显示或打印运行结果。
因仅模拟地址变换,并不模拟指令的实际执行。
(4)在分页式虚拟存贮系统中,当硬件发出缺页中断后,转操作系统处理缺页中断。
如果主存中已无空闲块,当采用先进先出算法时,则淘汰最先进入主存的一页,若该页修改过,还要存入磁盘,然后在把当前要访问的页装入该块,并修改页表中的对应标志。
当采用LRU算法时,则淘汰最近没有访问的页。
大概流程图如下:
(5)有了具体的核心算法实现方法之后,就可以开发简单的界面,并且把以上综合到
程序中,最后调试BUG,完成实验。
4、实验结果及分析:
(1)对于题目一我制作了一个帮助界面(如图1),可以便于我记起实验的内容以及理
解相应知识,有了已知内容,我输入逻辑地址(例如320),则程序输出为(如图2)。
图1“题目一帮助界面”图2“题目一运行界面”
(2)对于题目二我同样制作了一个帮助界面(如图3),可以便于我操作程序不出现格式错误,如果出错程序会弹出窗口报错(如图4)。
当物理块数为3,页面使用列表为233223123233时,则采用先进先出算法时table表应如下:
233221212233
2333221223232333212******(‘*‘代表缺页中断)
采用LRU算法时table表应如下:
233223123233233223123232332231212*****(‘*‘代表缺页中断)
则程序输出为(如图5、6)。
图3“题目二帮助界面”图4“题目二错误窗口”
篇三:
请求分页管理实验报告
请求分页存储管理模拟实验
1.实验目的
请求页式管理是一种常用的虚拟存储管理技术。
本设计通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。
2.实验内容:
通过随机数产生一个指令序列,共320条指令。
指令的地址按下述原则生成:
①50%的指令是顺序执行的;
②25%的指令是均匀分布在前地址部分;③25%的指令是均匀分布在后地址部分。
具体的实施方法是:
①在[0,319]的指令地址之间随机选取一起点m;②顺序执行一条指令;
③在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m′;④顺序执行一条指令,其地址为m′+1;
⑤在后地址[m′+2,319]中随机选取一条指令并执行;⑥重复上述步骤②~⑤,直到执行320次指令。
将指令序列变换成为页地址流设:
①页面大小为1K;
②用户内存容量为4页到32页;③用户虚存容量为32K。
在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:
第0条~第9条指令为第0页(对应虚存地址为[0,9]);第10条~第19条指令为第1页(对应虚存地址为[10,19]);┇┇
第310条~第319条指令为第31页(对应虚存地址为[310,319])。
按以上方式,用户指令可组成32页。
计算并输出下述各种算法在不同内存容量下的命中率。
先进先出的算法(FIFO);最近最少使用算法(LRR);最少访问页面算法(LFR);最近最不经常使用算法(NUR)。
3.实验环境
每个学生一台微机,需要安装windows98或windowsXX操作系统,配备VC、VB、java或C编程语言,每个学生上机时间不少于24个小时。
(1)、分页请求系统
是:
(1)请求分页的页表机制。
它是在分页的页表机制上增加若干个项而形成的,作为请求分页的数据结构;
(2)缺页中断机构。
每当用户程序要访问的页面尚未调入内存时,便产生一缺页中断,以请求OS将所缺的页面调入内存;
(3)地址变换机构。
它同样是在分页的地址变换机构的基础上发展形成的。
为了实现请求调页还须得到OS的支持,在实现请求调页功能时,石油OS将所需的页从外存调入内存;在实现置换功能时,也是由OS将内存的某些页调至外存。
为了能实现请求调页和置换功能,系统必须提供必要的硬件支持,其中,最重要的
4.实验提示
提示:
A.命中率=1-页面失效次数/页地址流长度
B.本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。
C.关于随机数产生方法,采用TC系统提供函数RAND()和RANDOMIZE()来产生。
5.算法的理解
㈠FIFO页面置换算法⑴原理简述
①在分配内存页面数(AP)小于进程页面数(PP)时,当然是最先运
行的AP个页面放入内存。
②这时有需要处理新的页面,则将原来内存中的AP个页面最先进入的调出(是以称为FIFO),然后将新页面放入。
③以后如果再有新页面需要调入,则都按⑵的规则进行。
算法特点:
所使用的内存页面构成一个队列。
㈡LRU页面置换算法⑴原理算述
①当分配内存页面数(AP)小于进程页面数(PP)时,当然是把最先执行的AP个页面放入内存。
②当需要调页面进入内存,而当前分配的内存页面全部不空闲时,选择将其中最长时间没有用到的那个页面调出,以空出内存来放置新调入的页面(称为LRU)。
算法特点:
每个页面都有属性来表示有多长时间未被CPU使用的信息。
㈢LFU即最不经常使用页置换算法⑴原理简述
要求在页置换时置换引用计数最小的页,因为经常使用的页应该有一个较大的引用次数。
但是有些页在开始时使用次数很多,但以后就不再使用,这类页将会长时间留在内存中,因此可以将引用计数寄存器定时右移一位,形成指数衰减的平均使用次数。
LRU算法的硬件支持
把LRU算法作为页面置换算法是比较好的,它对于各种类型的程序都能适用,但1.一个进程在内存中的各个页面各有多久时间未被进程访问;
2.如何快速地知道哪一页最近最久未使用的页面。
为此,须利用以下两类支持硬件:
实现起来有相当大的难度,因为它要求系统具有较多的支持硬件。
所要解决的问题有:
(1)寄存器
(2)栈
可利用一个特殊的栈来保存当前使用的各个页面的页面号。
每当进程访问某页面
时,便将该页面的页面号从栈中移出,将它压入栈顶。
算法特点:
LFU算法并不能真正反映出页面的使用情况,因为在每一时间间隔内,只是用寄存器的一位来记录页的使用情况,因此,访问一次和访问10000次是等效的。
㈣NUR页面置换算法⑴原理简述
所谓“最近未使用”,首先是要对“近”作一个界定,比如CLEAR_PERIOD=50,便是指在CPU最近的50次进程页面处理工作中,都没有处理到的页面。
那么可能会有以下几种情况:
①如果这样的页面只有一个,就将其换出,放入需要处理的新页面。
②如果有这样的页面不止一个,就在这些页面中任取一个换出(可以是下标最小的,或者是下标最大的),放入需要处理的页面。
③如果没有一个这样的页面,就随意换出一个页面(可以是下标最小的,或者是下标最大的)。
算法特点:
有一个循环周期,每到达这个周期,所有页面存放是否被CPU处理的信息的属性均被置于初始态(没有被访问)。
6.实验流程图
7.实验运行结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分页 存储 管理 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)