操作系统课程设计全局页面替换算法.doc

上传人:scccc 文档编号:12465403 上传时间:2021-12-04 格式:DOC 页数:11 大小:74KB
返回 下载 相关 举报
操作系统课程设计全局页面替换算法.doc_第1页
第1页 / 共11页
操作系统课程设计全局页面替换算法.doc_第2页
第2页 / 共11页
操作系统课程设计全局页面替换算法.doc_第3页
第3页 / 共11页
操作系统课程设计全局页面替换算法.doc_第4页
第4页 / 共11页
操作系统课程设计全局页面替换算法.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《操作系统课程设计全局页面替换算法.doc》由会员分享,可在线阅读,更多相关《操作系统课程设计全局页面替换算法.doc(11页珍藏版)》请在三一文库上搜索。

1、长治学院课程设计报告课程名称: 操作系统课程设计 设计题目: 全局页面置换策略(FIFO算法) 系 别: 计算机系 专 业: 计算机科学与技术 组 别: 第六组 学生姓名: 李俊瑞 学 号: 08407112 起止日期: 2011年6月28日 2011年7月3日 指导教师: 王崇霞 9 / 11文档可自由编辑打印目 录1 、需求分析11.1.课程设计题目11.2课程设计任务及要求11.3课程设计思想11.4软、硬件运行环境及开发工具12 、总体设计22.1.系统总体结构流程图22.2程序设计及模块介绍23 、详细设计33.1.数据结构设计33.2程序流程图33.3具体代码设计34 、调试75

2、、总结与体会86、 参考文献91、 需求分析1.1课程设计题目全局页面置换策略(先进先出算法)1.2课程设计任务及要求1、设计主界面以灵活选择某算法,实现先进先出算法(FIFO)2、给出实现方案(包括数据结构和模块说明等)3、画出程序的基本结构框图和流程图4、分析说明每一部分程序的的设计思路5、实现源代码6、按期提交完整的程序代码和可执行程序7、根据要求完成课程设计报告8、总结1.3课程设计思想首先输入页面号,根据页面号的次序采用FIFO算法来查看缺页状况和缺页率。先进先出算法(FIFO)总是先淘汰最先调入主存的页面。设计目的:通过请求页式存储管理中页面置换算法模拟程序,了解虚拟存储技术的特点

3、,掌握请求页式存储管理的页面置换算法。1.4软、硬件运行环境及开发环境 运行环境:a.CPU: Intel 575 2.00GHzb.20G以上硬盘空间c.操作系统:Microsoft Windows XP开发工具: Microsoft visual c+ 6.02总体设计2.1.系统总体结构流程图:图2-1 系统总体结构流程图 2.2程序设计及模块介绍:核心程序如下:  for (j=1;j<=3;j+)           k=q->front+j; 

4、0;   if (ai=q->quek)           cout<<ai<<"进入时已经命中!"<<endl;      hit+;      f+;     模块介绍:先进先出页面置换算法(FIFO)是基于程序局部性原理来考虑的,认为驻留时间最长的也不再使用得到可能性较大。FIF

5、O算法的一种实现方法是系统设置一张具有n个元素的页面表,在程序中采用数组建立动态顺序表来进行代码的编写及模块的设计。3、详细设计3.1数据结构设计#include <iostream.h>#define MAX 100#define flag typedef structint front,rear;int queMAX;queue;int max(int a,int b)return (a>b?a:b);3.2程序流程图先进先出页面置换算法(FIFO)的程序流程图如下: 图3-1程序流程图3.3.具体代码设计/先来先服务Avoid FIFO(queue *q,in

6、t a,int n)int k,f=0,i,j,m;double hit=0;for (i=0;i<n;i+) f=0;   if (q->rear-q->front)<3)       for (j=1;j<=q->rear-q->front;j+)/未满时的命中判断           k=q->front+j;     if (ai=q->

7、;quek)           cout<<ai<<"进入时已经命中!"<<endl;      hit+;      f+;             if(f=0)        

8、   q->rear+;      q->queq->rear=ai;           else         for (j=1;j<=3;j+)/已满时的命中判断           k=q->front+j;   

9、60; if (ai=q->quek)           cout<<ai<<"进入时已经命中!"<<endl;      hit+;      f+;             if (f=0)     &

10、#160;              q->front+;       q->rear+;       q->queq->rear=ai;          for (m=q->front+1;m<=q->rear;m+) &#

11、160;     cout<<q->quem<<'t'      cout<<endl;cout<<"FIFO算法的命中率为"<<(hit/n)*100<<"%"<<endl;/主函数void main()char ch='y'while (ch='y')   queue *q=new queue;   q-&

12、gt;front=q->rear=-1;   queue *p=new queue;   p->front=p->rear=-1;   queue *m=new queue;   m->front=m->rear=-1;   int data100;   int i=0;   int x;   char y;     cout<<"请输入页面号(

13、以结束):"<<endl;    while (1)          A: cin>>y;     if(y<48|y>57)&&(y!='')           cout<<"请输入数字!"<<endl;  &#

14、160;        goto A;         if(y='')     break;    x=y-48;    datai=x;    i+;      while (1)       cout<<&

15、quot;            *欢迎进行测试*"<<endl;    cout<<"            *                

16、                     *"<<endl;    cout<<"            *       1.先进先出算法(FIFO)

17、60;         *"<<endl;            cout<<"            *       2.最近最久未使用算法(LRU)   

18、0; *"<<endl;            cout<<"            *       3.最佳置换算法(OPT)           *"<&l

19、t;endl;            cout<<"            *       4.算法之间的对比分析          *"<<endl;   

20、;         cout<<"            *       5.结束本次算法                *"<<endl; &#

21、160;       cout<<"            *                             

22、;        *"<<endl;    cout<<"            *"<<endl;    char z;Y:      cout<<"请输入你需要的操作序号(1-5):"<<endl

23、;    cin>>z;    switch (z)         case '1':            cout<<"FIFO算法:"<<endl;      FIFO(q,data,i);    &

24、#160;  break;            case '2':             cout<<"LRU算法:"<<endl;       LRU(p,data,i);       brea

25、k;            case '3':       cout<<"OPT算法:"<<endl;       OPT(m,data,i);       break;        &#

26、160;      case '4':cout<<"1.先进先出置换算法(FIFO):选择最先进入内存的页面予以淘汰。 "<<endl;cout<<"2.最近最久未使用算法(LRU):选择在最近一段时间内最久没有使用过的页,把它淘汰。 "<<endl;cout<<"3.最佳置换算法(OPT) :选择以后永不使用或在最长时间内不再被访问的内存页面予以淘汰。"<<endl; 

27、0;              break;      case '5':goto l;      default:cout<<"输入有误!"<<endl;           goto Y; 

28、60;                     l:cout<<"是否重新输入页面号(y/n):"<<endl;   cin>>ch;4、调试程序经编译链接后生成可执行文件,运行该程序进行调试,具体过程如下:4.1输入页面号,如下图所示:图4-1 输入页面号4.2进入主界面,如下图所示:图4-2 主界面4.3输入序号1,选择FIFO置换算法,结果如下图

29、所示:图4-3 FIFO置换算法4.4输入序号0,退出程序,如下图所示:图4-4 退出程序5、总结与体会FIFO的基本思想是用队列存储内存中的页面,队列的特点是先进先出,与该算法是一致的,所以每当发生缺页时,就从对头删除一页,而从队尾加入缺页。或者借助辅助数组timemSIZE记录物理中对应页面的进入时间,每次需要置换时换出最小的页面。通过这次课程设计,我对全局页面置换策略有了更深刻的认识,对于FIFO置换算法来讲,其淘汰的页面是最先调入主存的页面,它是基于程序局部性原理来考虑的。在课程设计的过程中也遇到不少困难,不过在同学和老师的帮助下勉强完成了自己的任务,不过自己在这方面的知识和认识有了更

30、进一步的了解。 最后,感谢王崇霞老师还有帮助过我的同学。在课程设计之初老师帮助我分析题目,以及实现方法,讲解整个软件的思路、过程,为以后的学习及考研打好了很好的基础。6、参考文献1 孙忠秀.操作系统教程 (第四版):高等教育出版社,2009.2 马石安,魏文平.Visual C+程序设计与应用教程.北京:清华大学出版社,2007.3 郑莉,张瑞丰.C+语言程序设计(第3版).北京:清华大学出版社,2004.4.严蔚敏,吴伟民.数据结构.北京:清华大学出版社,2005.指导教师评语: 指导教师签名: 年 月 日成绩评定项 目权重成绩1、设计过程中出勤、学习态度等方面0.12、设计技术水平0.43、编程风格0.24、设计报告书写及图纸规范程度0.3总 成 绩

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1