您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 操作系统实验4-请求分页存储管理模拟实验
1实验四请求分页存储管理模拟实验一:实验目的通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求分页存储管理系统的原理和实现技术的理解。二:实验内容假设每个页面可以存放10条指令,分配给进程的存储块数为4。用C语言或Pascal语言模拟一进程的执行过程。设该进程共有320条指令,地址空间为32个页面,运行前所有页面均没有调入内存。模拟运行时,如果所访问的指令已经在内存,则显示其物理地址,并转下一条指令;如果所访问的指令还未装入内存,则发生缺页,此时需要记录缺页产生次数,并将相应页面调入内存,如果4个内存块已满,则需要进行页面置换。最后显示其物理地址,并转下一条指令。在所有指令执行完毕后,显示进程运行过程中的缺页次数和缺页率。页面置换算法:分别采用OPT、FIFO、LRU三种算法。进程中的指令访问次序按如下原则生成:50%的指令是顺序执行的。25%的指令是均匀分布在低地址部分。25%的指令是均匀分布在高地址部分。三:实验类别分页存储管理四:实验类型模拟实验五:主要仪器计算机六:结果2OPT:34LRU:FIFO:5七:程序#include#include#include#defineblocknum4agenum=-1;block[i].accessed=0;m=0;}}intpageExist(intcurpage)agenum==curpage)returni;agenum==-1)returni;ccessedblock[pos].accessed)6pos=i;agenum!=-1){printf(%02d,block[i].pagenum);printf(%p|,&block[i].pagenum);}}printf(\n);}voidrandam()agenum=curpage;agenum!=num[j]/10){block[k].accessed=1000;}ccessed=j;break;}}}position=findReplace();agenum=curpage;agenum=curpage;agenum=curpage;display();n++;ccessed=-1;ccessed++;}}printf(缺页次数:%d\n,n);printf(缺页率:%f%%\n,(n/*100);}voidFIFO(){intn=0;agenum=curpage;agenum=curpage;//将此页面调入内存n++;display();}}}printf(缺页次数:%d\n,n);printf(缺页率:%f%%\n,(n/*100);}voidmain(){intchoice;7printf(************请求分页存储管理模拟系统*************\n);randam();printf(************此进程的页面调用序列如下**************\n);pagestring();while(choice!=4){printf(********1:OPT2:LRU3:FIFO4:退出*********\n);printf(请选择一种页面置换算法:);scanf(%d,&choice);init();switch(choice){case1:printf(最佳置换算法OPT:\n);printf(页面号物理地址页面号物理地址页面号物理地址页面号物理地址\n);OPT();break;case2:printf(最近最久未使用置换算法LRU:\n);printf(页面号物理地址页面号物理地址页面号物理地址页面号物理地址\n);LRU();break;case3:printf(先进先出置换算法FIFO:\n);printf(页面号物理地址页面号物理地址页面号物理地址页面号物理地址\n);FIFO();break;}}}
本文标题:操作系统实验4-请求分页存储管理模拟实验
链接地址:https://www.777doc.com/doc-7318713 .html