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

有该页面 { for(int i=0。 iBsize。 i++) { if(block[i].pagenum == curpage ) return i。 //检测到内存中 有该页面,返回 block 中的位置 } 请求调页存储器管理方式的模拟实验报告 6 return 1。 //没有则返回 1 } // int findSpace() //查找是否有空闲物理块 { for(int i=0。 iBsize。 i++) { if(block[i].pagenum == 1) return i。 //找到空闲的 block,返回 block 中的位置 } return 1。 //找不到则返回 1 } // int findReplace() //查找应予置换的页面 { int pos = 0。 for(int i=0。 iBsize。 i++) { if(block[i].accessed block[pos].accessed) pos = i。 //找到应予置换页面,返回 BLOCK 中位置 } return pos。 } // void display(int space) //显示 { for(int i=0。 iBsize。 i++) { if(block[i].pagenum != 1) //物理块不空 {printf( %02d ,block[i].pagenum)。 } } cout 调 入 的 页 面 是 : block[space].pagenum 其 物 理 块 的 地 址 是 :amp。 block[space]。 coutendl。 } // void suijishu(int pc) //产生随机数 { int flag=0。 cout******按照要求产生的 320 个随机数: *******endl。 for(int i=0。 i320。 i++) { temp[i]=pc。 if(flag%2==0) pc=++pc%320。 //产生 50%的顺序执行指令( flag=0或 2时顺序执行) 请求调页存储器管理方式的模拟实验报告 7 if(flag==1) pc=rand()% (pc1)。 //产生 25%的均匀分布在前地址部分指令 if(flag==3) pc=pc+1+(rand()%(320(pc+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 LRU() // LRU 算法(最近最少使用算法) { int exist,space,position。 int curpage。 for(int i=0。 i320。 i++) { if(i%100==0) getch()。 //getch 直接从键盘获取键值 pc=temp[i]。 //指令在数组中的位置 curpage=pc/10。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。