- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.
实验报告
程名称 操作系 原理 名称 虚 式管理
姓 名 学号 班 网
日期 成 指 教 安科
(① 目的② 原理③主要 器 ④ 内容与步 ⑤ 数据 与 理⑥
果与分析⑦ 建 )
实验二 模拟请求页式存储管理中硬件的地址转换和缺页中断, 并用
先进先出调度算法( FIFO)处理缺页中断
1.内容: 模 求 式存 管理中硬件的地址 和缺 中断 理
2.思想 :
装入新 置 旧 ,若旧 在 行中没有被修改 , 不必将 重写磁 。因此,
表中增加是否修改 的 志, 行“存”指令和“写”指令 将 的修改 志置成“
1”
表示修改 ,否 “
0”表示未修改 。 表格式如下:
号
志
架号
修改 志
在磁 上位置
3.要求及方法:
① 一个地址 程序来模 硬件的地址 和缺 中断。当 的 在主存
形成 地址, 但不去模 指令的 行, 可以 出 后的 地址来表示一条指令已 行
完成。当 的 不在主存中 , 出“ * 号”来表示硬件 生了一次缺 中断。模
地址 流程 1。
② 制一个 FIFO 面 度程序; FIFO 面 度算法 是先 出作 中最先 入主存
中的哪一 。因此可以用一个数 来表示 (或构成) 号 列。数 中每个元素是 作 已
在主存中的 面号,假定分配 作 的 架数 m,且 作 开始的 m 已装入主存, 数
可由 m个元素构成。
P[0] ,P[1] , P[2] ,?, P[m-1]
它 的初 P[0] : =0, P[1] : =1, P[2] :=2,?, P[m-1] :=m-1
用一指 K 指示当要 入新 出的 在数 中的位置, K 的初 “ 0”,当 生缺
.
.
中断后,操作系统总是选择 P[K] 所指出的页面调出,然后执行:
P[K] :=要装入的新页页号
K: =(k+1)mod m
在实验中不必实际地启动磁盘执行调出一页和装入一页的工作, 而用输出 “ OUT调出的
页号”和“ IN 要装入的新页页号” 来模拟一次调出和装入过程, 模拟程序的流程图见附图 1。
按流程控制过程如下:
1 存指令
提示: 输入指令的页号和页内偏移和是否存指令
0 非存指令
,若 d 为 -1 则结束, 否则进
入流程控制过程,得
P1 和 d,查表在主存时,绝对地址
=P1× 1024+d
③ 假定主存中页架大小为
1024 个字节,现有一个共
7 页的作业,其副本已在磁盘上。
系统为该作业分配了
4 个页架, 且该作业的第
0 页至第
3 页已装入内存, 其余 3 页未装入主
存,该作业的页表如下:
页号
标志
页架号
修改标志
在磁盘上位置
0
1
5
0
011
1
1
8
0
012
2
1
9
0
013
3
1
1
0
021
4
0
0
022
5
0
0
023
6
0
0
121
如果该作业依次执行的指令序列如下表所示:
操作
页号
页内地址
操作
页号
页内地址
+
0
070
移位
4
053
+
1
050
+
5
023
×
2
015
存
1
037
存
3
021
取
2
078
取
0
056
+
4
001
-
6
040
存
6
084
依次执行上述指令调试你所设计的程序(仅模拟指令的执行,不考虑序列中具体操作
的执行)。
④ 为进一步考察程序的执行,可自行确定若干组指令,运行程序,核对执行结果。
.
.
4.书写实验报告:
① 实验题目;
② 程序中所用的数据结构及说明;
③ 源程序并附上必要的说明;
④ 按照指令的执行序列,打印输出结果:绝对地址或调出、调入的页号。
.
.
图 1 模拟算法流程
.
.
代码:
#includeiostream
#includeiomanip
#includelist
using namespace std;
char useSign[12][5]={{+},{-},{*},{ 存 },{ 取 },{-},{ 移 位
},{+},{ 存 },{ 取 },{+},{ 存}};
int PageAddress[12]={70,50,15,21,56,40,53,23,37,78,01,84};
int PageNum[12]={0,1,2,3,0,6,4,5,1,2,4,6};
int S_Station;
int pPageNum[7];// 页号 pPage
int pSign[7];
int pStool[7];// 页架号
int pModify[7];// 修改标志
int pStation[7];// 磁盘位置
static int z=0;
void Store()
{
for(int i=0;i7
原创力文档


文档评论(0)