没有合适的资源?快使用搜索试试~ 我知道了~
实验四页式虚拟存储管理中地址转换和页式中断FIFOLRUOPTC++版本.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 4 浏览量
2021-10-03
15:25:28
上传
评论
收藏 55KB DOC 举报
温馨提示
试读
11页
实验四页式虚拟存储管理中地址转换和页式中断FIFOLRUOPTC++版本.doc
资源推荐
资源详情
资源评论
. .
实验四 页式虚拟存储管理中地址转换和页式中断
FIFO
一、实验目的
深入了解页式存储管理如实现地址转换;进一步认识页式虚拟存储管理中
如处理缺页中断以及页面置换算法。
二、实验主要容
编写程序完成页式虚拟存储管理中地址转换过程和模拟缺页中断的处理。
实验具体容包括:首先对给定的地址进展转换工作,假设发现缺页那么先进展
缺页中断处理,然后再进展地址转换;最后编写主函数对所做工作进展测试。
假定主存 ,每个主存块 字节,作业最大支持到 ,系统中
每个作业分得主存块 块。
三、实验原理
〕地址转换过程:
首先从逻辑地址中的高位取得页号,然后根据页号查页表,得到块号;然
后从逻辑地址中的低位取得页地址,将块号和页地址合并即得到物理地址。
〕缺页中断处理
根据页号查找页表,判断该页是否在主存储器中,假设该页标志位“〞,
形成缺页中断。操作系统让调出中断处理程序处理中断。
四、实验法与步骤
实现地址转换与缺页中断处理,主要考虑三个问题:第一,设计页式虚拟
存储管理式中页表的数据构造;第二,地址转换算法的实现;第三,缺页中断
处理算法的实现。
1) 设计页表的数据构造
页式虚拟存储管理式中页表除了页号和该页对应的主存块号外,至少还要
包括存在标志〔该页是否在主存〕,磁盘位置〔该页的副本在磁盘上的位置〕
和修改标志〔该页是否修改正〕。在实验中页表用数组模拟,其数据构造定义
如下:
页号
表示页是否在主存中,“〞表示在,“〞表示不在
该页所在主存块的块号
该页是否被修改正,“〞表示修改正,“表示没有修改正
该页存放在磁盘上的位置,即磁盘块号
页表定义
2〕地址转换算法的实现
地址转换是由硬件完成的,实验中使用软件程序模拟地址转换过程。在实验中,
每个主存块 字节,那么块地址占 位;主存 ,那么主存共 块,
即块号占 位;物理地址共占 位;作业最大 ,那么作业最大占 块,
即页号占 位,逻辑地址共占 位。〔用主存的大小计算物理地址位数,用
最大作业大小计算逻辑地址位数〕。
在页式虚拟存储管理式中,作业信息作为副本放在磁盘上,作业执行时仅
把作业信息的局部页面装入主存储器,作业执行时假设访问的页面在主存中,
. .word.zl.
. .
那么进展地址转换,假设访问的页面不在主存中,那么产生一个“缺页中断〞,
由操作系统把当前所需要的页面装入主存储器后,再次执行时才可以按上述法
进展地址转换。
!!!!!!!!!!!!!!!!!!!!!!!模拟地址转换流程度
"〕 缺页中断处理算法的实现
缺页处理过程简单阐述如下:
#根据当前执行指令中逻辑地址的页号查找页表,判断该页是否在主存储
器中,假设该页标志为“〞,形成缺页中断。中断装置通过交换 $%& 让操作系
统的中断处理程序占用处理器。
#操作系统处理缺页中断的法及时查主存分配表,找一个空闲主存块;假
设无空闲块,查页表,选择一个已在主存的页面,把它暂时调出主存。假设在
执行过程中该页被修改正,那么需将该页信息写回磁盘,否那么不比写回;
#找出该页的位置,启动磁盘读出该页的信息,把磁盘上读出的信息装入
第 不找到的主存块,修改页表中该页的标志为“〞;
#由于产生缺页中断的那条指令还没有执行完,所以页面装入后应该重新
执行被中断的指令。当重新执行该指令时,由于要访问的页面已在主存中,所
以可以正常执行。
关于第二步的查找装入新页面的主存块处理式,不同系统采用的策略可能
有所不同,这里采用局部置换算法,就是每个作业分得一定的主存块,只能在
分得的主存块查找空闲块,假设无空闲主存块,那么从该作业中选择一个页面
淘汰出主存。实验中采用局部置换算法。
使用局部置换算法时,存在这样一个问题:就是在分配给作业主存空间时,
装入哪些页?有的系统采取不装入任一页,当执行过程中需要时才将其调入。
有点系统采用页面预置的法,事先估计可能某些页面会先用到,在分配主存块
后将这些页面装入。在本实验中采用第二种法,分配主存空间时将前几页调入
主存,假定系统中每个作业分得主存块 块,那么将第 '( 页装入主存。
因为是模拟硬件工作,所有在实验中如果访问的页不再主存中时,那么输
入该页页号,表示硬件产生缺页中断,然后直接转去缺页中断处理;由于采用
页面预置法,在给定的主存块中一定无空闲块,只能淘汰已在主存的一页;没
有启动磁盘的工作,淘汰的页面需要写回磁盘时,用输入页号表示,调入新的
一页时,将该页在页表中的存在标志置为“〞,输出页号表示将该页调入主存。
当主存中无空闲块时,为装入一个页面,必须按照某种算法从已在主存的
页中选择一页,将它暂时调出主存,让出主存空间,用来存放装入的页面,这
个工作称为“页面调度〞。常用的页面调度算法有:先进现出、最近最少用算法、
和最近最不常用算法。在本实验中采用先进现出调度算法。先进现出算法总是
选择驻留在主存时间最长的一页调出。实验中把主存储器的页的页号按照进入
主存的先后次序拍成队列,每次总是调出对首的页,当装入一个新页后,把新
页的页号排入对尾。实验中,用一个数组存放页号的队列。假定分配给作业的
主存块数为 ,数组可由 个元素组成, ) ) **( 对首指
针 +采用页面预置的法,页号队列的长度总是 , 等于
. .word.zl.
. .
,+-#.。因此可以使用一个指针,只用 + 即可。在装入一个新的页
时,装入页和淘汰页同时执行,当装入一个新的页时,将其页号存入数组:
淘汰页的页号=+
+ /新装入页的页号;
+/,+-#.
实验执行一条指令时,不模拟指令的执行,只是考虑指令执行是否修改页
面,假设修改页面,那么将该页的页表中的修改标志位置“〞,然后输出转换
后的物理地址,并输出物理地址来表示一条指令执行完成;如果访问的页不在
主存时,那么产生缺页中断,然后直接转去缺页中断处理,最后模拟中断返回,
就是返回冲进进展地址转换。
因为没有实际主存,所有在模拟程序中首先手工输入页表信息,创立该作
业的页表;然后循环执行假定的指令,观察地址转换情况。
五、练习题
采用 012 页面调度算法编程实现上述虚拟页式存储管理的地址转换。
源代码
3456+7
38页表的最大长度
38+系统为每个作业分配的主存块数
页号
表示页是否在主存中,“〞表示在,“〞表示不在
该页所在主存块的块号
该页是否被修改正,“〞表示修改正,“表示没有修改正
该页存放在磁盘上的位置,即磁盘块号
页表定义
9+页表的实际长度
+ 用向量模拟主存
+
:59,#缺页中断处理函数
:5,)#命令处理函数
:5,#
)))
544;输入页表的信息,创立页表〔页号从 开场,假设页号为-,
那么完毕输入〕<;
544;请输入页号和辅存地址:;
7777
65,#
/
+,=/(#
. .word.zl.
剩余10页未读,继续阅读
资源评论
wsbhm62
- 粉丝: 7
- 资源: 22万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2%EF%BC%9A%E9%99%95%E8%A5%BF%E
- yyspdz62_944.apk
- SAP公司间采购EDI配置-如何触发自动MIRO.docx
- python197基于图像识别的仪表实时监控系统.rar
- I2C驱动SHT30温湿度传感器和LCD12864使用例程(RSCG12864B)
- python193中学地理-中国的江河湖泊教学网(django).rar
- python191基于时间序列分析的大气污染预测软件(django).rar
- python190基于人脸识别智能化小区门禁管理系统.rar
- python189某医院体检挂号系统.rar
- python179的企业物流管理系统(django).rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功