1、 操作系统原理课程设计报告 多级反馈队列调度算法 学院(系): 班 级: 学号 学生姓名: 组 员: 指导教师: 时间: 2009 年 6 月 29 日 至 2009 年 7 月 3 日 1 目录目录 一课程设计的目的 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 七
2、心得体会11 八参考文献11 2 一一 课程设计的目的课程设计的目的 本课程设计是学生学习完计算机操作系统(第三版)课程后,进行的一次 全面的综合训练, 通过课程设计, 让学生更好地掌握操作系统的原理及实现方法, 加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。 二二课程设计的内容及要求课程设计的内容及要求 设计一个虚拟处理机,编程序演示堆积反馈队列调度算法的具体实现过程 三三实现原理实现原理 该程序基于计算机调度算法中的多级反馈队列算法,使用 JAVA 语言描述, 通过线程和对象的调用来实现该算法的演示。 在多级反馈队列算法中,当一个新进程进入内存后,首先将它放入第一队列 的末尾
3、,按 FCFS 原则排队等待调度。当轮到该进程执行时,如它能在该时间片 内完成,变可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便 将该进程转入第二队列的末尾,在同样地按 FCFS 原则等待调度执行;如果它在 第二个队列中运行一个时间片后仍未完成, 在一次将它放入第三队列, 如此下去, 当一个长作业(进程)从第一队列依次降到第 n队列后,在第 n队列中便采取按时 间片转轮的方式运行。 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第 1(i-1) 队列均为空时,才会调度第 i队列中的进程运行。如果处理机正常第 i 队列中的 某个进程服务时,又有新进程进入优先权较高的队
4、列(第 1(i-1)中的任何一个队 列),此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进 程返回第 i队列的末尾,把处理机分配给新到的高优先权进程。 3 四四关键关键算法实现流程图算法实现流程图 4.1 多级反馈队列调度算法实现流程图多级反馈队列调度算法实现流程图 4.2 文件详细文件详细 Work.java:用于封装每个进程的 Java Bean,将每个进程的信息封装到对象里 面便于使用。 SeqQueue.java:用户封装每个队列的 Java Bean,将每个队列的信息封装到对 象里面便于使用。 Arithmetic.java:核心类文件,用于算法的计算和界面的控制。 4 View.java:用于构建界面的类文件,用于向用户演示整个算法运行的过程,以 及与用户的交互操作。 ControlView.java:用于构建控制台的类文件,用于与用户交互以及控制程序的 进程等。 五五软件运行环境及限制软件运行环境及限制 由