请求调页存储管理方式的模拟实验报告内容摘要:

for(int i=0。 isize。 i++) { if(block[i].pagenum != 1) //物理块不空 { printf( %02d,block[i].pagenum)。 } } coutendl。 }void Random( ){ int flag=0。 cincount。 cout******按照要求产生的320个随机数:*******endl。 for(int i=0。 i320。 i++) { temp[i]=count。 if(flag%2==0)count=++count%320。 //产生50%的顺序执行指令(flag=0或2时顺序执行) if(flag==1) count=rand( )% (count1)。 //产生25%的均匀分布在前地址部分指令 if(flag==3) count=count+1+(rand( )%(320(count+1)))。 //产生25%的均匀分布在后地址部分指令 flag=++flag%4。 printf( %03d,temp[i])。 if((i+1)%10==0) coutendl。 }}void pagestring( ) //显示调用的页面队列{ for(int i=0。 i320。 i++) { printf( %02d,temp[i]/10)。 if((i+1)%10==0) coutendl。 }}//最佳置换算法void OPT( ){ int exist,space,position。 int curpage。 for(int i=0。 i320。 i++) { if(i%100==0) getch( )。 count=temp[i]。 curpage=count/10。 exist = findExist(curpage)。 if(exist==1) { space = findSpace ( )。 if(space != 1) { block[space].pagenum = curpage。 display( )。 n=n+1。 } else { for(int k=0。 ksize。 k++) { for(int j=i。 j320。 j++) { if(block[k].pagenum!= temp[j]/10) { block[k].accessed = 1000。 }//将来不会用,设置为一个很大数 else { block[k].accessed = j。 break。 } } } position = findReplace( )。 block[position].pagenum = curpage。 display( )。 n++。 } } } cout缺页次数:nendl。 cout缺页率:(n/)*100%endl。 }// 最近最少使用算法 void LRU( ) { int exist,space,position。 int curpage。 for(int i=0。 i320。 i++) { if(i%100==0) getch( )。 //getch直接从键盘获取键值 count=temp[i]。 //指令在数组中的位置 curpage=count/10。 //指令所在页面 exist = findExis。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。