操作系统原理课程设计报告多级反馈队列调度算法.doc

操作系统原理课程设计报告多级反馈队列调度算法.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统原理课程设计报告多级反馈队列调度算法

《操作系统原理》课程设计报告 多级反馈队列调度算法 学院(系): 班 级: 学号 学生姓名: 组 员: 指导教师: 时间: 2009 年 6 月29日 至 2009 年7月 3日 目录 一.课程设计的目的 2 二.课程设计的内容及要求 2 三.实现原理 2 四.关键算法实现流程图 3 4.1 多级反馈队列调度算法实现流程图 3 4.2 文件详细 3 五.软件运行环境及限制 4 六.结果输出及分析 4 6.0.1 初始界面 4 6.1 主程序界面 5 6.2 执行界面 6 6.3 执行完成 7 6.4 其他功能 8 6.5 算法结果说明 9 6.6 算法核心代码 9 七.心得体会 11 八.参考文献 11 课程设计的目的 本课程设计是学生学习完《计算机操作系统》课程后,进行的一次全面的综合训练,加深操作系统基础理论和的理解,加强学生的动手能力。,编程序演示堆积反馈队列调度算法的具体实现过程 三.实现原理 该程序基于计算机调度算法中的多级反馈队列算法,使用JAVA语言描述,通过线程和对象的调用来实现该算法的演示。 在多级反馈队列算法中,当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,变可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,在同样地按FCFS原则等待调度执行;如果它在第二个队列中运行一个时间片后仍未完成,在一次将它放入第三队列,如此下去,当一个长作业(进程)从第一队列依次降到第n队列后,在第n队列中便采取按时间片转轮的方式运行。 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1)队列均为空时,才会调度第i队列中的进程运行。如果处理机正常第i队列中的某个进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程返回第i队列的末尾,把处理机分配给新到的高优先权进程。 四.关键算法实现流程图 4.1 多级反馈队列调度算法实现流程图 4.2 文件详细 Work.java:用于封装每个进程的Java Bean,将每个进程的信息封装到对象里面便于使用。 SeqQueue.java:用户封装每个队列的Java Bean,将每个队列的信息封装到对象里面便于使用。 Arithmetic.java:核心类文件,用于算法的计算和界面的控制。 View.java:用于构建界面的类文件,用于向用户演示整个算法运行的过程,以及与用户的交互操作。 ControlView.java:用于构建控制台的类文件,用于与用户交互以及控制程序的进程等。 五.软件运行环境及限制 由于本程序是由java程序编写,具有跨平台的性能。在具有java支持的环境中皆能运行,建议在windows2003 server及windows XP系统下运行。 环境要求:JDK1.6版本及其以上 六.结果输出及分析 6.0.1 初始界面 初始化程序需要的空间等 6.1 主程序界面 左上方显示队列中排队的进程,左下为执行完成的情况 右上为执行信息,右下方为正在处理的进程 用户可以对程序进行操作 算法实现思想 6.2 执行界面 及时地添加进程并按多级反馈队列调度算法来执行 6.3 执行完成 执行完成后显示出所有的进程的执行情况 用户可以通过控制台来重新执行 6.4 其他功能 换肤功能 6.5 算法结果说明 进程运行时,将启动两个线程,分别用来添加任务和执行任务,在任务执行过程中,不断的更新当前的执行情况,并接受用户的操作。 6.6 算法核心代码 算法核心代码为Arithmetic.java,代码如下: class delThread extends Thread{//执行进程 @SuppressWarnings(deprecation) public void run(){ while(true){ if(isStop){ View.setSq(sq);//更新面板数据 view.showWork(); view.showNewWork(-3, null);//刷新正在处理的面板 delThreadFlag=true; delThread.this.

文档评论(0)

almm118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档