实验3-页面调度算法

上传人:m**** 文档编号:505174451 上传时间:2023-06-09 格式:DOCX 页数:14 大小:115.39KB
返回 下载 相关 举报
实验3-页面调度算法_第1页
第1页 / 共14页
实验3-页面调度算法_第2页
第2页 / 共14页
实验3-页面调度算法_第3页
第3页 / 共14页
实验3-页面调度算法_第4页
第4页 / 共14页
实验3-页面调度算法_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《实验3-页面调度算法》由会员分享,可在线阅读,更多相关《实验3-页面调度算法(14页珍藏版)》请在金锄头文库上搜索。

1、Shaanxi University of Technology实验报告院(系):专业班级:学 号:姓 名:实验地点:实验日期:课程名称实验项目名称实验学时实验类型计算机操作系统页面调度算法2验证型一、实验目的及要求通过本实验可以加深理解有关虚拟存储器的工作原理,进一步体会和了解页 面替换算法的具体实现方法。二、实验环境PC /Windows 系统/Visual C+6.0三、实验内容 实现三种算法:先进先出;OPT; LRU 页面序列从指定的文本文件(TXT文件)中取出 输出:第一行:每次淘汰的页面号,第二行:显示缺页的总次数四、实验步骤1. 先进先出(FIFO)置换算法的思路该算法总是淘汰

2、最先进入内存的页面,即选择在内存中驻留时间最久的页面 予以淘汰。该算法实现简单,只需把一个进程已调入内存的页面,按照先后次序 连接成一个队列,并设置一个替换指针,使它总指向最老的页面。2. 最近久未使用(LRU )置换算法的思路最近久未使用置换算法的替换规则,是根据页面调入内存后的使用情况来进 行决策的。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问 以来所经历的时间,当需淘汰一个页面的时候选择现有页面中其时间值最大的进 行淘汰。3. 最佳(OPT )置换算法的思路其所选择的被淘汰的页面,将是以后不使用的,或者是在未来时间内不再被 访问的页面,米用最佳算法,通常可保证获得最低的缺

3、页率。4、流程图如下图所示:五、调试过程程序结构分析:程序共有以下九个部分:int findSpace(void);/查找是否有空闲内存int findExist(int curpage);/查找内存中是否有该页面int findReplace(void);/查找应予置换的页面void display(void);/ 显示void FIFO(void);/FIFO 算法void LRU(void);/LRU 算法void OPT(void);/OPT 算法;void BlockClear(void);/BLOCK清空,以便用另一种方法重新演示 int main()主程序六、实验结果及分析程序源

4、代码:#in elude viostream.h#defi ne Bsize 3#defi ne Psize 20struct page Inforint con te nt;/页面号int timer;/被访问标记;class PRApublic:PRA(void);int fin dSpace(void);/查找是否有空闲内存int fin dExist( int curpage);/查找内存中是否有该页面int findRep lace(void);/查找应予置换的页面void display(void);/ 显示void FIFO(void);/FIFO 算法void LRU(void

5、);/LRU 算法void Optimal(void);/OPTIMAL 算法void BlockClear(void);/BLOCK 恢复pagel nfor * block;/ 物理块page Infor * page;/ 页面号串private:;PRA:PRA(void)int QStri ng20=7,0,1,2,0,3,0,4,2,3,032,1,2,0,1,7,0,1;block = new page Inf orBsize;for(i nt i=0; iBsize; i+)blocki.c ontent = -1;blocki.timer = 0;page = new page

6、 Inf orPsize;for(i=0; iPsize; i+)pagei.c ontent = QStr in gi;pagei.timer = 0;int PRA:fi ndSpace(void)for(i nt i=0; ivBsize; i+)if(blocki.co ntent = -1)return i;找到空闲内存,返回BLOCK中位置return -1;int PRA:fi ndExist(i nt curpage)for(i nt i=0; iBsize; i+)if(blocki.c ontent = pagecurpage.c ontent)return i;找到内存中

7、有该页面,返回BLOCK中位置return -1;int PRA:fi ndRep lace(void)int pos = 0;for(i nt i=0; i= blockpos.timer)pos = i;找到应予置换页面,返回BLOCK中位置retur n pos;void PRA:display(void)for(i nt i=0; ivBsize; i+) if(blocki.co ntent != -1) coutvvblocki.c onten t; coutvve ndl;void PRA:Optimal(void)int exist,space,positi on ;for(i

8、 nt i=0; ivPsize; i+)exist = fin dExist(i);if(exist != -1) coutvv不缺页 ”vve ndl; elsespace = fin dSpace(); if(space != -1)blockspace = pagei; display();elsefor(i nt k=0; kvBsize; k+)for(i nt j=i; jvPsize; j+) if(blockk.c ontent != pagej.c ontent) blockk.timer = 1000; /将来不会用,设置TIMER为一个很大数 elseblockk.ti

9、mer = j;break;positi on = fin dReplace();blockpositi on = pagei;display。;void PRA:LRU(void)int exist,space,positi on ;for(i nt i=0; i应用 Optimal 算法”vvendl;coutvv选择v2应用 FIFO 算法”vvendl;coutvv选择v3应用 LRU 算法”vvendl;coutvv选择 v0 退出vve ndl;int select;PRA test;while(select)cin select;switch(select)case 0:brea

10、k;case 1:coutvv”Optimal 算法结果如下:”vvendl; test.Optimal();test.BlockClear();coutvvvve ndl;break;case 2:coutvvFIFO 算法结果如下:vvendl;test.FIFO();test.BlockClear();coutvvvve ndl;break;case 3:coutvvLRU 算法结果如下:vvendl;test.LRU();test.BlockClear();coutvvvve ndl;break;default:coutvv请输入正确功能号vve ndl; break;实验截图如下图所示:HC:Program FilesMicrosoft Visual StudioMyProjectscccDebugccc.exeI;页面萱换算法;!power by kangyan1IIIi页面号引用串:?,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1Optimal.1Opt 5辺算法结果如下:77 07 0 12 0 1不缺页2 0 3不缺页2 4 3不篮页木缺页2 0 3不邂页木缺页2 0 1lease select:.applyi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号