欢迎来到天天文库
浏览记录
ID:36503489
大小:89.50 KB
页数:11页
时间:2019-05-11
《操作系统课程设计全局页面替换算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、长治学院课程设计报告课程名称:操作系统课程设计设计题目:全局页面置换策略(FIFO算法)系别:计算机系专业:计算机科学与技术组别:第六组学生姓名:李俊瑞学号:08407112起止日期:2011年6月28日~2011年7月3日指导教师:王崇霞9目录1、需求分析11.1.课程设计题目11.2课程设计任务及要求11.3课程设计思想11.4软、硬件运行环境及开发工具12、总体设计22.1.系统总体结构流程图22.2程序设计及模块介绍23、详细设计33.1.数据结构设计33.2程序流程图33.3具体代码设计34、调试75、总结与体会86、参考文献991、需求分析1.1课程设计题目全局页
2、面置换策略(先进先出算法)1.2课程设计任务及要求1、设计主界面以灵活选择某算法,实现先进先出算法(FIFO)2、给出实现方案(包括数据结构和模块说明等)3、画出程序的基本结构框图和流程图4、分析说明每一部分程序的的设计思路5、实现源代码6、按期提交完整的程序代码和可执行程序7、根据要求完成课程设计报告8、总结1.3课程设计思想首先输入页面号,根据页面号的次序采用FIFO算法来查看缺页状况和缺页率。先进先出算法(FIFO)总是先淘汰最先调入主存的页面。设计目的:通过请求页式存储管理中页面置换算法模拟程序,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。1.4软、硬
3、件运行环境及开发环境运行环境:a.CPU:Intel575@2.00GHzb.20G以上硬盘空间c.操作系统:MicrosoftWindowsXP开发工具:Microsoftvisualc++6.092.总体设计2.1.系统总体结构流程图:图2-1系统总体结构流程图 2.2程序设计及模块介绍:核心程序如下: for(j=1;j<=3;j++) { k=q->front+j; if(a[i]==q->que[k]) { cout<4、页面置换算法(FIFO)是基于程序局部性原理来考虑的,认为驻留时间最长的也不再使用得到可能性较大。FIFO算法的一种实现方法是系统设置一张具有n个元素的页面表,在程序中采用数组建立动态顺序表来进行代码的编写及模块的设计。93、详细设计3.1数据结构设计#include#defineMAX100#defineflag@typedefstruct{intfront,rear;intque[MAX];}queue;intmax(inta,intb){return(a>b?a:b);}3.2程序流程图先进先出页面置换算法(FIFO)的程序流程图如下: 图3-15、程序流程图3.3.具体代码设计//先来先服务AvoidFIFO(queue*q,inta[],int9n){intk,f=0,i,j,m;doublehit=0;for(i=0;irear-q->front)<3) { for(j=1;j<=q->rear-q->front;j++)//未满时的命中判断 { k=q->front+j; if(a[i]==q->que[k]) { cout<6、 if(f==0) { q->rear++; q->que[q->rear]=a[i]; } } else { for(j=1;j<=3;j++)//已满时的命中判断 { k=q->front+j; if(a[i]==q->que[k]) { cout<front++; q->rear++; q->que[q-7、>rear]=a[i]; } } for(m=q->front+1;m<=q->rear;m++) 9{ cout<que[m]<<'t'; } cout<front=q->rear=-1; queue*p=newqueue; p->fro
4、页面置换算法(FIFO)是基于程序局部性原理来考虑的,认为驻留时间最长的也不再使用得到可能性较大。FIFO算法的一种实现方法是系统设置一张具有n个元素的页面表,在程序中采用数组建立动态顺序表来进行代码的编写及模块的设计。93、详细设计3.1数据结构设计#include#defineMAX100#defineflag@typedefstruct{intfront,rear;intque[MAX];}queue;intmax(inta,intb){return(a>b?a:b);}3.2程序流程图先进先出页面置换算法(FIFO)的程序流程图如下: 图3-1
5、程序流程图3.3.具体代码设计//先来先服务AvoidFIFO(queue*q,inta[],int9n){intk,f=0,i,j,m;doublehit=0;for(i=0;irear-q->front)<3) { for(j=1;j<=q->rear-q->front;j++)//未满时的命中判断 { k=q->front+j; if(a[i]==q->que[k]) { cout<6、 if(f==0) { q->rear++; q->que[q->rear]=a[i]; } } else { for(j=1;j<=3;j++)//已满时的命中判断 { k=q->front+j; if(a[i]==q->que[k]) { cout<front++; q->rear++; q->que[q-7、>rear]=a[i]; } } for(m=q->front+1;m<=q->rear;m++) 9{ cout<que[m]<<'t'; } cout<front=q->rear=-1; queue*p=newqueue; p->fro
6、 if(f==0) { q->rear++; q->que[q->rear]=a[i]; } } else { for(j=1;j<=3;j++)//已满时的命中判断 { k=q->front+j; if(a[i]==q->que[k]) { cout<front++; q->rear++; q->que[q-
7、>rear]=a[i]; } } for(m=q->front+1;m<=q->rear;m++) 9{ cout<que[m]<<'t'; } cout<front=q->rear=-1; queue*p=newqueue; p->fro
此文档下载收益归作者所有