操作系统课程设计(FIFOOPT).docVIP

  • 28
  • 0
  • 约7.1千字
  • 约 14页
  • 2018-03-13 发布于河南
  • 举报
操作系统课程设计(FIFOOPT)

课程设计(大作业)任务书 姓 名: 院(系):信息技术学院 专 业: 计算机科学与技术 学 号: 任务起止日期:2011年12月22日至12月26日 课程设计题目:Linux环境下几种内存调度算法模拟 课程设计要求及任务描述: 设计内容: 理解FIFO、OPT等常见内存调度算法的原理。 模拟实现其中任意两种调度算法。 采用这两种调度算法,对同一访问序列进行命中率计算和输出,并比较结果。注:命中率=1-缺页率。 实验环境及工具: 实验环境:Linux 文本编辑工具:Vi 编译器:GCC 工作计划及安排: 12月26日:安排任务 12月27日:算法分析 12月28日:编译、调试程序,得出结果 12月29日:分析结果,分析原因,写报告 指导教师签字 年 月 日 课程设计(大作业)成绩 学号: 姓名: 指导教师: 课程设计题目:Linux环境下几种内存调度算法模拟 完成情况总结: 操作系统课程设计中我们理解FIFO、OPT等常见内存调度算法的原理。模拟实现其中FIFO、OPT两种调度算法。采用这两种调度算法,对同一访问序列进行命中率计算和输出,并比较结果。并能熟悉运用各种命令,并理解各种命令的功能和执行方式以及结果,并能熟练运用。指导并了解FIFO、OPT命令的各种功能和作用等等。 实验过程中我们遇到了很多困难,比如在实验过程当中怎样熟练使用实验环境:Linux,文本编辑工具:Vi,编译器:GCC等等. 使用命令时不知道怎么操作,不知道怎么运行命令,但后来在老师的指导下,同学们的相互讨论交流中,还是解决了问题。一开始不知道怎么使用配置环境等等,后来在不断学习中,终于解决了问题,完成试验。通过这次试验我深刻认识到团队合作的重要性,同学之间相互讨论学习的重要性,老师画龙点睛的作用,以及我们自己动手能力的重要等等。 本次实验做得很成功,其中还要多感谢老师的细心指导及同学们的热心帮助。学习是一个积累的过程,没有平时课内基础知识的学习是很难完成此次实验的,重点在于对这门课程理解的深度。学习工具的使用亦是一个很重要的因素,包括以前学习的编程语言及Linux虚拟机的使用,由于没有勤加练习,在修改调试程序的过程中出现了很多问题,但在老师和同学的帮助下都一一解决了,感觉自己又查缺补漏了许多重要有用的东西。感谢学院给我们组织这次课程设计的机会,在这个过程中真是受益匪浅。 指导教师评语: 成绩: 填表时间: 指导教师签名: 课程设计(大作业)报告 两种算法的原理分析 FIFO内存调度算法的原理 该算法总是淘汰最先进入内存的页面,即选择内存中主流时间最久的页面给予淘汰。 (1)在分配内存页面数(AP)大于进程页面数(PP)时,所有进程需要的页面(PP个页面)按提出请求的先后次序放入内存。 (2)在分配内存页面数(AP)小于进程页面数(PP)时,当然进程是按提出请求的次序将最先的AP个页面放入内存。 (3)这时有需要处理新的页面,则将内存中的AP个页面最先进入的调出(称为FIFO),然后放入新页面。 (4)在以后如果有新的页面需要调入,按3的规则进行。 OPT内存调度算法的原理 当发生缺页时,有些页面在内存中,其中有一页将很快被访问(也包含紧接着的下一条指令的那页),而其他页面则可能要到10、100或者1000条指令后才会被访问,每个页面都可以用在该页面首次被访问前所要执行的指令数进行标记。标记最大的页应该被置换。如果某页在八百万条指令内不会被使用,另一页在600万条指令内不会被使用,则置换前一个页面,从而把因需要调回这一页发生的缺页推到将来,越远越好。 OPT内存调度算法的流程图 两种算法的实现代码 FIFO内存调度算法的代码 #includestdio.h #includestdlib.h #includeprocess.h #define TRUE 1 #define FALSE 0 #define INVALID -1 #define total_instruction 320 #define total_vp 32 #define clear_period 50 typedef struct { int pn,pfn,counter,time; }pl_type; pl_type pl[total_vp]; struct pfc_struct{ int pn,pfn; struct pfc_struct *next;

文档评论(0)

1亿VIP精品文档

相关文档