页面置换算法(操作系统试验).doc





《页面置换算法(操作系统试验).doc》由会员分享,可在线阅读,更多相关《页面置换算法(操作系统试验).doc(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date页面置换算法(操作系统试验)页面置换算法(操作系统试验)实验4 页面置换算法(2学时)一、实验目的 通过实验加强对虚拟存储管理中页面置换算法的理解和掌握。二、实验内容 编写程序实现虚拟存储管理中OPT,FIFO,LRU页面置换算法。三、实验要求1、任意给出一组页面访问顺序(如页面走向是1、2、5、7、5、7、1、4、3、5、6、4、3、2、1、5、2)。2、分配给该作
2、业一定的物理块(如3块、4块等)。3、利用OPT,FIFO,LRU页面置换算法模拟页面置换过程并计算其缺页率。4、每访问一个页面均需给出内存中的内容(内存中的页面号),若有淘汰还需给出淘汰的页面号。5、通过给出特殊的页面访问顺序,分配不同的物理块,利用FIFO算法计算其缺页率,进一步理解Belady现象。6、(附加)实现CLOCK置换算法,修改位可在确定页面号时直接任意给出。代码部分:#include #include #include void rand(int n,int p)/这函数是产生n个110的随机数放到p数组里面 int START=1; int END=10; int v; i
3、nt i;int a; srand(time(NULL); for(i=0; in; i+) v=rand()%(END-START+1)+START; pi=v; coutv; struct Pro int num,time; /num存放具体的内容,time在不同算法里面有不同的意义; /它们是物理块和页面的数据结构int Input(int m,int N,Pro *p,Pro *page)/完成p数组和page的初始化工作 /p数组是存放页面的空间,m是页面的长度 /page是可以使用的物理块,N是物理块的大小 coutendl请输入各页面号endl; int *p2=new intm
4、; rand(m,p2); for(int i=0;im;i+) pi.num=p2i; pi.time=0; for(i=0;iN;i+)/初试化页面基本情况 pagei.num=0; pagei.time=N+2-i; return m; int Search(int e,Pro *page,int N)/算法里面都要用到它。/它是找e页是否在page物理块中,N是物理块的大小 for(int i=0;iN;i+) if(e=pagei.num) return i;/如果找到,就返回在物理块中的位置给Search return -1;/找不到,就返回-1 int Max(Pro *page
5、,int N)/LRU算法用到的/找出在page块中,time最大的值和位置,同时位置返回/time最大,就代表了最久没被使用的数 int e=page0.time,i=0; int k=0; while(iN)/找出离现在时间最长的页面 if(epagei.time) k=i; i+; return k; int Compfu(Pro *page,int i,int t,Pro p,int m)/OPT算法用到的/找出如果paget要等于p,并且zai pipm这个区间内,走的次数,最大的数 int count=0;/count是保存走的步数 for(int j=i;jm;j+) if(pa
6、get.num=pj.num )break;/如果相等,跳出循环 else count+;/不等就步数加1 return count; int Min(Pro page,int N)/LFU算法用到的 /page是可以使用的物理块,N是物理块的大小 /找到出现次数最小的的数,并把位置返回 int k=0; int min=page0.time; for(int i=0;ipagei.time) k=i; return k; void FIFO(Pro p,Pro page,int m,int N)/p数组是存放页面的空间,m是页面的长度 /page是可以使用的物理块,N是物理块的大小 floa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 页面 置换 算法 操作系统 试验

限制150内