页面置换算法模拟实验报告.doc

页面置换算法模拟实验报告.doc

ID:48591099

大小:197.00 KB

页数:8页

时间:2020-02-26

页面置换算法模拟实验报告.doc_第1页
页面置换算法模拟实验报告.doc_第2页
页面置换算法模拟实验报告.doc_第3页
页面置换算法模拟实验报告.doc_第4页
页面置换算法模拟实验报告.doc_第5页
资源描述:

《页面置换算法模拟实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.实验编号4名称 页面置换算法模拟实验目的通过请求页式存储管理中页面置换算法模拟设计,以便:1、了解虚拟存储技术的特点2、掌握请求页式存储管理中页面置换算法实验内容与步骤设计一个虚拟存储区和内存工作区,并使用FIFO和LRU算法计算访问命中率。<程序设计>先用srand()函数和rand()函数定义和产生指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法计算相应的命中率。<程序1>#include//Windows版,随机函数需要,GetCurrentProcessId()需要//#include//Linux版

2、,随机函数srand和rand需要#include//printf()需要#defineTRUE1#defineFALSE0#defineINVALID-1#defineNULL0#definetotal_instruction320//共320条指令#definetotal_vp32//虚存页共32页#defineclear_period50//访问次数清零周期typedefstruct{//定义页表结构类型(页面映射表PMT)intpn,pfn,counter,time;//页号、页框号(块号)、一个周期内访问该页面的次数、访问时间}PMT;P

3、MTpmt[32];typedefstructpfc_struct{//页面控制结构教育范文.intpn,pfn;structpfc_struct*next;}pfc_type;pfc_typepfc[32];pfc_type*freepf_head,*busypf_head,*busypf_tail;//空闲页头指针,忙页头指针,忙页尾指针intNoPageCount;//缺页次数inta[total_instruction];//指令流数组intpage[total_instruction],offset[total_instruction];//每条指令的页和

4、页内偏移voidinitialize(int);voidFIFO(int);//先进先出voidLRU(int);//最近最久未使用voidNRU(int);//最近最不经常使用/****************************************************************************main()*****************************************************************************/voidmain(){inti,s;//srand(10*getpid(

5、));//用进程号作为初始化随机数队列的种子//Linux版srand(10*GetCurrentProcessId());//用进程号作为初始化随机数的种子//Windows版s=rand()%320;//在[0,319]的指令地址之间随机选取一起点mfor(i=0;i

6、

7、s>319){printf("wheni==%d,error,s==%d",i,s);exit(0);}a[i]=s;//任意选一指令访问点m。(将随机数作为指令地址m)a[i+1]=a[i]+1;//顺序执行下一

8、条指令a[i+2]=rand()%(s+2);//在[0,m+1]的前地址之间随机选取一地址,记为m'a[i+3]=a[i+2]+1;//顺序执行一条指令s=a[i+2]+(int)rand()%(320-a[i+2]);//在[m',319]的指令地址之间随机选取一起点m教育范文.if((a[i+2]>318)

9、

10、(s>319))printf("a[%d+2,anumberwhichis:%dands=%d",i,a[i+2],s);}for(i=0;i

11、ffset[i]=a[i]%10;}for(i=4;i<=32;i++){//内存块分别为4块、5块、...32块时的命中率printf("%2dpageframes",i);FIFO(i);//计算用FIFO置换时,有i个内存块时的命中率LRU(i);//最近最久未使用NRU(i);//最近最不经常使用printf("");}}/***************************************************************************initialize()形参:内存块数功能:初始化***************

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。