- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验五 虚拟内存页面置换算法
一:实验目的
通过这次实验,加深对虚拟内存页面置换概念的理解,进一步掌握先进先出FIFO、最佳置换OPI和最近最久未使用LRU页面置换算法的实现方法。
二:实验内容
问题描述:
设计程序模拟先进先出FIFO、最佳置换OPI和最近最久未使用LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1, … ,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,计算每种算法缺页次数和缺页率。
程序要求:
1)利用先进先出FIFO、最佳置换OPI和最近最久未使用LRU三种页面置换算法模拟页面访问过程。
2)模拟三种算法的页面置换过程,给出每个页面访问时的内存分配情况。
3)输入:最小物理块数m,页面个数n,页面访问序列P1, … ,Pn,算法选择1-FIFO,2-OPI,3-LRU。
4)输出:每种算法的缺页次数和缺页率。
实现提示:
用C++语言实现提示:
1)程序中变量定义参考如下:
int PageOrder[MaxNumber];
int Time[MaxNumber];
int Simulate[MaxNumber][MaxNumber];
int PageCount[MaxNumber];
int PageNum,LackNum,PageMin;
double LackPageRate;
bool found;
2)页面置换的实现过程如下:
变量初始化;
接收用户输入最小物理块数m,页面个数n,页面序列P1, … ,Pn,选择算法1-FIFO,2-OPI,3-LRU;
根据用户选择的算法进行页面的分配和置换,输出页面置换算法的模拟过程;
计算选择算法的缺页次数和缺页率;
输出选择算法的缺页次数和缺页率。
三:概要设计
输入函数void input()
初始化函数void Initial()
显示函数void show()
先进先出算法的函数void FIFO()
最佳置换算法的函数void OPI()
最近最久未使用置换算法void LRU()
主函数void main()
{
input();
int s=0;
while(s!=4)
{
cout请选择算法:endl;
cout1:先进先出;2:最佳值换算法;3:最近最久未使用置换算法;4:退出endl;
cins;
switch(s)
{
case 1:
FIFO();
show();
break;
case 2:
OPI();
show();
break;
case 3:
LRU();
show();
break;
case 4:
return;
default:
cout输入数字不对,请重新输入:;
break;
}
}
}
四:结果测试和截图以及说明
输入:页面个数 20
页面数列 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
系统为进程分配的物理块:3
输出结果如截图所示:
先进先出算法:
2.最佳置换算法 3.LRU算法
说明:—1表示的是物理块中没有页面。
相邻的相同的也同时表示出来了并没有空出。
五:源代码
#includeiostream.h
//using namespace std;
const int MaxNumber=100;
int PageOrder[MaxNumber];
int Time[MaxNumber];
int Simulate[MaxNumber][MaxNumber];
int PageCount[MaxNumber];
int PageNum,LackNum,PageMin;
double LackPageRate;
bool found;
//输入
void input()
{
cout请输入页面个数:(PageNum)endl;
cinPageNum;
while(PageNumMaxNumber)
{
cout页面个数太大,请重新输入:(PageNum)endl;
cinPageNum;
}
cout请输入页面序列:endl;
for(int i_PageOrder=0;i_PageOrderPageNum;i_PageOrder++)
{
cinPageOrder[i_PageOrder];
}
cout请输入系统分配的最小页面个数:(PageMin)endl;
cinPageMin;
您可能关注的文档
- 名词性从句讲解及专项练习习题及其解答.doc
- 实习报告材料.docx
- 明清家具调研报告.doc
- 实习报告的自我鉴定.doc
- 实习报告文件.doc
- 实习护士岗位职责.doc
- 模电课程设计-温控装置.pdf
- 模糊综合评价法.ppt
- 模具材料习题(答案).doc
- 模拟电子技术题库-答案 (1).pdf
- 新视野二版听说1第6单元示范1课件.ppt
- 【参考答案】 联络口译(第二版) 《联络口译》(第二版)参考答案.pdf
- 梅大高速茶阳路段“5·1”塌方灾害调查评估报告.docx
- 虹吸雨水PE管施工节点标准做法.pdf
- 2025消防设施施工质量常见通病防治手册,典型图示+规范要求.pptx
- 新视野大学英语(第二版)读写教程 4 空军工程大学编U05B.ppt
- E英语教程2(智慧版)Unit 6.pptx
- E英语教程3(智慧版)Unit 7.ppt
- 新视野二版读写1第4单元课件Section A How to Make a Good Impression.pptx
- E英语视听说教程4(智慧版)4-U2课件(2024版)U2.pptx
文档评论(0)