设计性实验(四)实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PAGE

PAGE8

实验报告

09软件卢建成6号曾繁基7号

一.实验题目

模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及用先进先出(FIFO)页面调度算法处理缺页中断。

二.实验目的

(1)理解在分页式存储管理中怎样实现虚拟存储器;

(2)掌握分页式虚拟存储管理中硬件的地址转换和缺页中断;

(3)学会如何用先进先出(FIFO)页面调度算法处理缺页中断;

(4)加深对存储管理的作用和工作原理的理解;

(5)进一步认识主存空间的分配和回收方法。

三.实验内容以及要求

本实验的目的是通过设计和调试一个简单请求分页式系统,加深对虚拟存储管理中页面调度算法FIFO、LRU等的理解。具体要求如下:

(1)设计一个模拟请求分页式的系统;

(2)采用FIFO或LRU页面置换算法;

(3)根据输入的页面访问次序,及初始分配的块数,进行模拟;

(4)如果发生页面置换则将置换出的页面显示出来,并显示该页面是否被修改等信息。

四.实验环境

操作系统:Windows7

开发语言:VC++

开发工具:MicrosoftVisualC++6.0

五.问题分析

请求页式存储管理主要需要解决以下问题:

系统如何获知进程当前所需页面不在主存;当发现缺页时,如何把所缺页面调入主存;当主存中没有空闲的页框时,为了要接受一个新页,需要把老的一页淘汰出去,根据什么策略选择欲淘汰的页面。

本程序中采用先来先服务的淘汰方式。

各进程的虚拟空间被划分成若干个长度相等的页。页长的划分和内存外存之间的数据传输速度以及内存大小等有关。页式管理还把内存空间也按页的大小划分为页面,然后把页式虚拟地址与内存页面物理地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。

在作业或进程开始执行之前,把该作业或进程的程序段和数据全部装入内存的各个页面中,并通过页表和硬件地址变换机构实现虚拟地址到内存物理地址的地址映射。

六.设计思想

页式虚拟存储管理是在页式存储管理的基础上实现的,首先把作业信息作为副本存放在磁盘上,作业执行时,把作业信息的部分页面装入主存储器,作业执行时若所访问的页面已经在主存中,则进行地址转换,得到绝对地址,否则产生“缺页中断”由操作系统把当前所需的页面装入主存。

在页式虚拟存储系统中,把虚拟空间分成页,称为逻辑页;内存空间也分成同样大小的页,称为物理页。假设逻辑页号为0,1,2,……,m,物理页号为0,1,……,n,显然有mn。由于页的大小都取2的整数幂个字,所以,页的起点都落在低字段为零的地址上。因此,虚存地址分为两个字段:高位字段为逻辑页号,低位字段为页内行地址,实存地地址也分两个字段:高位字段为物理页号,低位字段为页内行地址。由于两者的页面大小一样,所以页内行地址相等。

虚拟地址到主存实地址的变换是由放在主页的页表来实现。在页表中,对应每一个虚存逻辑页号有一个表目,表目内容至少要包含该逻辑页所在的主存页面地址(物理页号),用它作为主存地址的高字段,与虚存地址的页内行地址字段相拼接,就产生了完整的实主存地址据此来访问主存。页式管理的地址变换如图1所示。如访问该逻辑页就要产生页面失效中断,启动输入输出子系统,根据页表项目中查得的外存地址,由磁盘等外存中读出新的页到主存中来。修改位指出主存页面中的内容是否被修改过,替换时是否要写主存,替换控制位指出需替换的页等。

七.实验系统结构

1.实验算法流程图

开始查页表取指令中访问的页号=L取一条指令

开始

查页表

取指令中访问的页号=L

取一条指令

页标志=1?

形成绝对地址

是否为存指令

置L页修改标志为1

输出绝对地址

是否有后继指令

取下一条指令

结束

J=P[K]

J页的修改标志=1?

输出“OUTJ”

输出“INL”

P[K]=L

K=(K+1)modm

修改页表

否(产生缺页中断)

(1)该程序可分为以下几个模块:

intmain();//主函数

voidInit();//初始化程序

voidDisplay();//显示页表情况的函数

voidInput();//输入指令程序

voidCheck(intt);//查页表程序

voidInter(intm);//缺页中断处理程序

voidComp(intw);//处理绝对地址函数

voidChange();//修改页表函数

(2)主要函数模块分析

1)地址变换函数:输入指令进行操作的页号和单元号,判断该页是否在主存中。若在,则直接计算绝对地址并输出,否则发生缺页中断。输出指令执行后的页表情况后再询问用户是否还有后继指令。

voidComp(intw){//绝对地址函数

intaddress=Page[w][2]*1024+unit;//

文档评论(0)

恋之 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档