欢迎来到天天文库
浏览记录
ID:14328310
大小:41.00 KB
页数:14页
时间:2018-07-27
《os模拟页面置换算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、os模拟页面置换算法os模拟页面置换算法.txt爱情是艺术,结婚是技术,离婚是算术。这年头女孩们都在争做小“腰”精,谁还稀罕小“腹”婆呀?高职不如高薪,高薪不如高寿,高寿不如高兴。用C语言或C++语言对页面置换算法进行模拟LFUNUR要求:从文件中输入进程的n个访问序列,以及分配给进程的物理页面数m,输出该访问序列的缺页率q。//*****LRU*********************:#include#include#definemSIZE3//分配三个
2、内存页块#definepSIZE12//总共12个进程structmem{intnum;intcount;}memery[3]={0,-1,0,-1,0,-1};staticintprocess[pSIZE]={1,2,3,4,1,2,5,1,2,3,4,5};//页面访问序列voidLRU();voidget();intmain(){get();printf("(LRU)treplace");LRU();system("PAUSE");return0;}voidget(){intw[
3、12]={1,2,3,4,1,2,5,1,2,3,4,5};inti,n;for(i=0;i<12;i++){printf("%d",w[i]);}}voidLRU(){inti=0,j=0,k=0,x,y;intreplace;for(i=0;i4、有相同的则置x为1replace=process[i];memery[j].count=0;//置此块count为0for(k=0;k<3;k++)if(k!=j&&memery[k].num!=0)memery[k].count++;//其他不为0页count++break;//跳出此次内存块循环}if(x==0)//没有与即将访问页号相同的内存块{for(j=0;j5、place=0;memery[j].num=process[i];//置此内存块为访问页号memery[j].count=0;//置此块count为0for(k=0;k<3;k++)if(k!=j&&memery[k].num!=0)memery[k].count++;//其他不为0页count++break;//跳出此次内存块循环}}if(x==0&&y==0)//既没有与即将访问页号相同的内存块也没有空内存块{intm=memery[0].count;for(j=0;j6、{if(memery[j].count>m)m=memery[j].count;}//查找出count最大的内存块mfor(j=0;j7、or(j=0;j8、n*next;}*ap_top,*ap_tail;zhan*mem_zhan[ap];//数组表示内存页实现处理的页栈voidshuru()//输入函数实现,实现页面数和执行顺序的存取{intm=1;intap_num;//页面数量zhan*t;printf("pleaseinputtheap'snumberofstorage:");scanf("%i",&ap_num);ap_tail=(zhan*)malloc(sizeof(zhan));printf("pleaseinputtheturn
4、有相同的则置x为1replace=process[i];memery[j].count=0;//置此块count为0for(k=0;k<3;k++)if(k!=j&&memery[k].num!=0)memery[k].count++;//其他不为0页count++break;//跳出此次内存块循环}if(x==0)//没有与即将访问页号相同的内存块{for(j=0;j5、place=0;memery[j].num=process[i];//置此内存块为访问页号memery[j].count=0;//置此块count为0for(k=0;k<3;k++)if(k!=j&&memery[k].num!=0)memery[k].count++;//其他不为0页count++break;//跳出此次内存块循环}}if(x==0&&y==0)//既没有与即将访问页号相同的内存块也没有空内存块{intm=memery[0].count;for(j=0;j6、{if(memery[j].count>m)m=memery[j].count;}//查找出count最大的内存块mfor(j=0;j7、or(j=0;j8、n*next;}*ap_top,*ap_tail;zhan*mem_zhan[ap];//数组表示内存页实现处理的页栈voidshuru()//输入函数实现,实现页面数和执行顺序的存取{intm=1;intap_num;//页面数量zhan*t;printf("pleaseinputtheap'snumberofstorage:");scanf("%i",&ap_num);ap_tail=(zhan*)malloc(sizeof(zhan));printf("pleaseinputtheturn
5、place=0;memery[j].num=process[i];//置此内存块为访问页号memery[j].count=0;//置此块count为0for(k=0;k<3;k++)if(k!=j&&memery[k].num!=0)memery[k].count++;//其他不为0页count++break;//跳出此次内存块循环}}if(x==0&&y==0)//既没有与即将访问页号相同的内存块也没有空内存块{intm=memery[0].count;for(j=0;j6、{if(memery[j].count>m)m=memery[j].count;}//查找出count最大的内存块mfor(j=0;j7、or(j=0;j8、n*next;}*ap_top,*ap_tail;zhan*mem_zhan[ap];//数组表示内存页实现处理的页栈voidshuru()//输入函数实现,实现页面数和执行顺序的存取{intm=1;intap_num;//页面数量zhan*t;printf("pleaseinputtheap'snumberofstorage:");scanf("%i",&ap_num);ap_tail=(zhan*)malloc(sizeof(zhan));printf("pleaseinputtheturn
6、{if(memery[j].count>m)m=memery[j].count;}//查找出count最大的内存块mfor(j=0;j7、or(j=0;j8、n*next;}*ap_top,*ap_tail;zhan*mem_zhan[ap];//数组表示内存页实现处理的页栈voidshuru()//输入函数实现,实现页面数和执行顺序的存取{intm=1;intap_num;//页面数量zhan*t;printf("pleaseinputtheap'snumberofstorage:");scanf("%i",&ap_num);ap_tail=(zhan*)malloc(sizeof(zhan));printf("pleaseinputtheturn
7、or(j=0;j8、n*next;}*ap_top,*ap_tail;zhan*mem_zhan[ap];//数组表示内存页实现处理的页栈voidshuru()//输入函数实现,实现页面数和执行顺序的存取{intm=1;intap_num;//页面数量zhan*t;printf("pleaseinputtheap'snumberofstorage:");scanf("%i",&ap_num);ap_tail=(zhan*)malloc(sizeof(zhan));printf("pleaseinputtheturn
8、n*next;}*ap_top,*ap_tail;zhan*mem_zhan[ap];//数组表示内存页实现处理的页栈voidshuru()//输入函数实现,实现页面数和执行顺序的存取{intm=1;intap_num;//页面数量zhan*t;printf("pleaseinputtheap'snumberofstorage:");scanf("%i",&ap_num);ap_tail=(zhan*)malloc(sizeof(zhan));printf("pleaseinputtheturn
此文档下载收益归作者所有