欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

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

    • 资源ID:4194134       资源大小:603.50KB        全文页数:12页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    操作系统原理课程设计报告多级反馈队列调度算法 学院(系): 班 级: 学号 学生姓名: 组 员: 指导教师: 时间: 2009 年 6 月29日 至 2009 年7月 3日目录一课程设计的目的2二课程设计的内容及要求2三实现原理2四关键算法实现流程图34.1 多级反馈队列调度算法实现流程图34.2 文件详细3五软件运行环境及限制4六结果输出及分析46.0.1 初始界面46.1 主程序界面56.2 执行界面66.3 执行完成76.4 其他功能86.5 算法结果说明96.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.stop();else if(!sq0.isEmpty()doIn(0);/执行第一个队列else if(!sq1.isEmpty()doIn(1);/执行第二个队列else if(!sq2.isEmpty()doIn(2);/执行第三个队列else if(!sq3.isEmpty()doIn(3);/执行第四个队列else if(addThreadFlag)/添加进程关闭且所有队列为空时自动关闭view.showNewWork(-2, null);/刷新正在处理的面板delThreadFlag=true;delThread.this.stop();public void doIn(int sqnum)/执行某个队列doflag=sqnum;/标志正常处理第sqnum队列待添加的隐藏文字内容2try work=sqsqnum.delete();/取出队首元素view.addMes("<font size='3'>执行队列"+(sqnum+1)+"中的'"+work.getName()+"'</font><br>");/添加信息view.setSq(sq);/更新面板数据view.showWork();/刷新队列面板view.showNewWork(sqnum+1, work);/刷新正在处理的面板int sqtime=sqsqnum.getTime();/获取队列时间片if(isOver(sqsqnum, work)/在时间片类执行完了int worktime=work.getLefttime();/获取进程的剩余执行时间for(time=0;newflag&&time<worktime;time+)Thread.sleep(1000);overThread(work);elsefor(time=0;newflag&&time<sqtime;time+)Thread.sleep(1000);if(newflag)/没有新进程加入队列work.setLefttime(work.getLefttime()-sqsqnum.getTime();if(sqnum=3)/最后一个队列addInSeqQueue(sqnum, work);/放入下个队列view.addMes("<font size='3'>'"+work.getName()+"'未执行完,转入队列"+(sqnum+1)+"队尾</font><br>");elseaddInSeqQueue(sqnum+1, work);/放入下个队列view.addMes("<font size='3'>'"+work.getName()+"'未执行完,转入队列"+(sqnum+2)+"队尾</font><br>");else/有新进程加入队列view.addMes("<font size='3' color=#FF0000>有进程进入了优先级更高的队列</font><br>");view.addMes("<font size='3'>'"+work.getName()+"'进入队列尾部</font><br>");work.setLefttime(work.getLefttime()-time);addInSeqQueue(sqnum, work);/放入队列尾部newflag=true;work=null;view.showNewWork(sqnum+1, work);/刷新正在处理的面板 catch (Exception e) e.printStackTrace();七心得体会通过这次课程设计,不仅让我进一步地了解了多级反馈队列调度算法,更重要的提高了我们的动手能力。这次的课程设计项目也让我意识到,未来的编程不是简简单单就能完成。而编程中所出现的问题也需要大家共同协商解决。开始的时候以为这道题有些难,经过对资料的查询.如:多级反馈队列调度算法如何的实现机制等,很快的找到了解决的办法并迅速的编写出了代码。.对问题缺乏仔细的分析是我的一个缺点,通过这次课程设计我克服了这个缺点,更学会了如何地利用无限的网络资源来帮助自己完善程序,学会了是使用前人的经验来帮助自己更好地成长。这个多级反馈队列调度算法程序还有一些不足之处,如不能演示过多的程序等,在以后的时间里我会将其完善。次外,感谢我的老师对我的教诲,使我掌握了操作系统的知识。八参考文献1汤小丹 梁红兵 等 计算机操作系统 西安电子科技大学出版社 20082朱战立 数据结构-Java语言描述清华大学出版社 2005

    注意事项

    本文(操作系统原理课程设计报告多级反馈队列调度算法.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开