《操作系统》实验五:页面置换算法模拟.doc
《《操作系统》实验五:页面置换算法模拟.doc》由会员分享,可在线阅读,更多相关《《操作系统》实验五:页面置换算法模拟.doc(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date操作系统实验五:页面置换算法模拟实验5 实验五. 请求页式存储管理的模拟实验内容:熟悉虚拟存储管理的各种页面置换算法,并编写模拟程序实现请求页式存储管理的页面置换算法-最近最久未使用算法(LRU),要求在每次产生置换时显示页面分配状态和缺页率。实验要求:1、运行给出的实验程序,查看执行情况,进而分析算法的执行过程,在理解FIFO页面置换算法和最近最久未使用算法(LRU
2、)置换算法后,给出最佳置换算法的模拟程序实现,并集成到参考程序中。2、执行2个页面置换模拟程序,分析缺页率的情况。最好页框数和访问序列长度可调节,在使用同一组访问序列数据的情况下,改变页框数并执行2个页面置换模拟程序,查看缺页率的变化。3、在每次产生置换时要求显示分配状态和缺页率。程序的地址访问序列通过随机数产生,要求具有足够的长度。最好页框数和访问序列长度可调节。实验的执行结果如下图所示(左下图为FIFO执行结果,右下图为LRU执行结果): 程序源代码:#include #include windows.h#include #include #include #include #includ
3、e #include void initialize(); /初始化相关数据结构void createps(); /随机生成访问序列void displayinfo(); /显示当前状态及缺页情况void fifo(); /先进先出算法int findpage(); /查找页面是否在内存void lru(); /最近最久未使用算法int invalidcount = 0; / 缺页次数int vpoint; /页面访问指针int pageframe10; / 分配的页框int pagehistory10; /记录页框中数据的访问历史int rpoint; /页面替换指针int inpflag;
4、 /缺页标志,0为不缺页,1为缺页struct PageInfo /页面信息结构 int serial100; / 模拟的最大访问页面数,实际控制在20以上 int flag; / 标志位,0表示无页面访问数据 int diseffect; / 缺页次数 int total_pf; / 分配的页框数 int total_pn; / 访问页面序列长度 pf_info;/初始化相关数据结构void initialize() int i,pf;inpflag=0; /缺页标志,0为不缺页,1为缺页pf_info.diseffect =0; / 缺页次数pf_info.flag =0; / 标志位,0
5、表示无页面访问数据printf(n请输入要分配的页框数:); / 自定义分配的页框数 scanf(%d,&pf);pf_info.total_pf =pf; for(i=0;i100;i+) / 清空页面序列 pf_info.seriali=-1; / 随机生成访问序列void createps(void )int s,i,pn; initialize(); /初始化相关数据结构printf(n请输入要随机生成访问序列的长度:); /自定义随机生成访问序列的长度 scanf(%d,&pn); srand(rand(); /初始化随机数队列的种子s=(float) rand() / 32767)
6、 * 50 + pn; / 随机产生页面序列长度pf_info.total_pn = s;for(i=0;is;i+) /产生随机访问序列 pf_info.seriali=(float) rand() / 32767) * 16 ; /随机数的大小在0-15之间 / 显示当前状态及缺页情况void displayinfo(void) int i,n; if(vpoint=0) printf(n=页面访问序列=n); for(i=0; ipf_info.total_pn; i+) printf(%4d,pf_info.seriali); if (i+1) % 10 =0) printf(n);
7、/每行显示10个 printf(n=n); printf(访问%3d : 内存,pf_info.serialvpoint); for(n=0;n=0) printf(%3d,pageframen); else printf( ); printf( ); if(inpflag=1) /缺页标志,0为不缺页,1为缺页 printf( =缺页 ); printf(缺页率%3.1f,(float)(pf_info.diseffect)*100.00/vpoint); printf(n); / 查找页面是否在内存,1为在内存,0为不在即缺页int findpage(int page) int n; fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 页面 置换 算法 模拟
限制150内