操作系统进程调度模拟课程设计

上传人:ba****u6 文档编号:110648753 上传时间:2022-06-19 格式:DOCX 页数:19 大小:176.94KB
返回 下载 相关 举报
操作系统进程调度模拟课程设计_第1页
第1页 / 共19页
操作系统进程调度模拟课程设计_第2页
第2页 / 共19页
操作系统进程调度模拟课程设计_第3页
第3页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
计算机操作系统课程设计实验报告题目名称进程调度模拟系统院系班级完成时间2013.1.8指导老师本次实验成绩组长联系电话邮件地址组长(姓名、学号)主要任务需求分析,模块设计与代码编写,组织任务分再己,PPT制作,实验报告审定,材料汇总等成员(姓名、学号)主要任务代码的编写实验报告的编写、材料查找等题目进程调度:模拟FCFS和SJF进程调度过程实验介绍原理现在的处理机任务量大,多个进程会郴时先后到达,并且各个进程的工作时间也不一定相同,为了使各个进程问不发生冲突,有条片的先后运行,并以最短的时间占用处理机,面对这种发展状况,有必要使用进程调度算法来提高处理机的工作效率。去选择合适的一种进程调度算法达到理想的效果,可以做到信息的规范管理、科学统计和快速运作,从而减少时间上的浪费。用Java语句设计实现登陆界面,直观显示各种算法和调度结果,直观地显示运行结果,设计进程调度算法实现用不同算法(先来先服务,短作业优先,高响应比优先调度算法,时间片轮转算法)进行进程调度,算出最短周转时间,实现高效率调度算法。参考资料1 黄祥品,计算机操作系统实验教程。广州:中山大学出版社,1994.2 汤子瀛,计算机操作系统(修订版)西安电子科技大学出版社3 AndrewS.Tanenbaum,现代操作系统,机械工业出版社。4 (美)BruceEckel.Java编程思想.陈昊鹏译.北京:机械工业出版社,20075 王路群.Java高级程序设计.北京:中国水利水电出版社,20066 孙卫琴.精通Struts:基丁MVC勺JavaWeb设计与开发.北京:电子工业出版社,2004.08实验环境(软件和硬件):(1)硬件要求EGA或VGA卡彩显或单显(640X350以上),单机内存2M以上,硬盘40M以上。客户粉算机采用586以上机型,客户端应用程序可以稳定的运行在Windows07xp操作系统之上。(2)软件要求实现前台登陆界面,需用到JAVA语句,需要安装MyEclipse软件。数据结构的定义进程号Q提交时间*运行时间*开始时间.结束时间周转时间十转时间3-22实验实现进程个数N进程号bi0提交时间bi1(4)运行时间bi2(5)开始时间bi3结束时间bi4周转时间bi5(8)带权周转时间bi6算法介绍(可以是流程图、可以是类C代码、可以是文字算法描述。)1. FCFS算法FCFS算法是最简单的算法,每次调度是从就绪的进程队列中,选择一个最先进入该队列的进程,为之位置分配处理机,使之运行。(1) 先对各进程的提交顺序进行升序排列,选择最先提交的进程开始运行。(2) 对已运行结束的进程结束时间与下一个提交的进程时间比较,若大于下一个进程的提交时间,则下一个进程的开始运行时间就是上一个进程的结束时间,否则,下一个进程的开始运行时间就是自己的提交时间。(3) 依次向后运行。SJF算法SJF算法是以作业的长短来计算优先级,作业越短优先级越高。作业长短用所要求的运行时间来衡量。(1) 先对各进程的提交顺序进行升序排列,选择最先提交的进程开始运行。(2) 对已运行结束的进程结束时间与下一个提交的进程时间比较,若大于下一个进程的提交时间,则下一个进程的开始运行时间就是上一个进程的结束时间,再次对刚运行结束的进程的结束时间与下一个提交的进程时间进行比较;若已运行结束的进程结束时间小于下一个提交的进程时间,则再找到刚刚运行结束的进程结束时间大于余下的的进程提交时间,在这两个进程之间对运行时间升序排列,找到运行时间最短的,开始投入运行。然后对余下的进程的提交时间排序,按此操作循环进行。(3) 依次向后运行。时间片轮转调度算法时间片轮转法表示的是系统在给定的时间内,响应所有用户的要求。将所有进程按先来先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。(1) 执行时间片用完时,由一个计时器发出时钟中断请求,调度程序据此信号来停止该进程的执行,并把他送往就绪队列的末尾。(2) 把处理机分配给就绪队列中新的队首进程,同时也让他执行一个时间片。这样就可以保证就绪队列中的所有进程在给定的时间内,均获得一时间片的处理执行时间。高响应比优先调度算法该算法综合考虑到先来先服务和短作业优先算法的优缺点,改善了处理机调度的性能。从而引入了优先权,优先权越高,先运行。优先权=(当前时间-提交时间)/运行时间+1当前时间是刚刚运行的进程的结束时间,提交时间是准备运行的进程的提交时间。(1) 先对各进程的提交顺序进行升序排列,选择最先提交的进程开始运行。(2) 对已运行结束的进程结束时间与下一个提交的进程时间比较,若大于下一个进程的提交时间,则比较剩下的进程的优先权,优先权越大则先运行。下一个进程的开始运行时间就是上一个进程的结束时间,再次对刚运行结束的进程的结束时间与下一个提交的进程时间进行比较;然后对余下的进程的提交时间排序,按此操作循环进行。若已运行结束的进程结束时间小于下一个提交的进程时间,则找到最先提交的进程投入运行,再次比较优先权。(3) 依次向后运行。2. Java运行界面的实现使用Java中GUI界面设计,实现各个按钮,文本和标签,再附上一个面板,把表格放到面板上,对于各个按钮实现监听便可对其产生作用。3. 系统模块设计及调试1.开始界面一一任意设置进程个数2.先来先服务算法运行结果3.短作业优先算法运行结果4.时间片轮转调度算法运行结果5.高响应比优先调度算法运行结果实践计划本次实践计划、进度安排及完成情况1. 资料收集和总结2. 需求分析和算法设计,界面设计3. 编程实现及调试,小组讨论及改进4. 实验报告及PPT汇报进度安排12.1012.13任务分配,资料收集和汇总12.1412.18需求分析,组员讨论12.1912.23算法设计,界面设计,组员讨论12.241.3编程实现及调试,组员讨论1.41.8实验报告及PPT汇报完成情况填写人完成情况组织任务分配,材料汇总,需求分析,模块设计与代码编写,实验报告审定,PPT制作收集资料,需求分析,编写部分程序代码资料查找,需求分析,实验se告编写资料查找,实验才聘整理收集资料,需求分析,材料总结,PPT整理*:此次操作系统课程设计,作为组长,主要任务为组织任务分再己,在技术方面负责需求分析,模块设计与代码编写,PPT制作,实验报告审定,材料汇总等。我们采用JAVA语言设计进程调度模拟系统,在给定题目的基础上,增加了两个调度算法,在此模拟系统中实现了四种基本进程调度,并利用GUI设计的优势设计出良好的界面风格。从课题确定到正式成稿的一个月过程中,我们进行了合理的计划安排和任务分配,组员合作十分融洽,并每周进行一次集中讨论交流,最终较好地完成了预定目标。在编程实践中,我对JAVA语言有了进一步的深入,对进程调度有了更深入的认识。此次团队合作也使我更加明确集体合作的重要性,大家共同讨论,共同搜集资料,集思广益,项目才能圆满完成。相信每一位组员也都收获颇多,很感谢有这么一次机会和大家合作,实验心得这会是一次难忘的经历。*:在这次操作系统课程设计中,我的主要任务是编写部分代码。另外,我也协助编写了实验报告以及资料的收集。编写代码过程中,我认真回顾了上学期操作系统的知识及JAVA和C语言的知识,并仔细编写研究了代码,进行了多次的修改。通过此次课程设计,我对四个进程调度有了更深入的理解(特别是时间片轮转算法),同时我的编程能力也得到了提高,综合运用各种编程语言的能力得到了很好的锻炼,很庆幸有这次锻炼的机会。这次小组分工干活更体现出了合作的优越性,相信对我今后的学习和工作会有很大帮助。*:此次课程设计,我参与了实验报告的编写以及资料的查找。在实验报告编写前,我需要对所描述的四个进程有充分的了解,明白他们各自的流程,以及多具有的优缺点;并明白所编写的代码的原理及具体的操作。这些要求也让我对操作系统的调度进程有了进一步的了解与认识,并掌握了对于进程代码的编写与具体操作。小组成员各有分工,也让我明白了分工合作的重要性。*:在这次课程设计中,我担任了查找资料和编写实验报告的任务。在这一过程中,我更深入的了解了四个进程调度的流程、运行及优缺点,并且对进程代码的编写有了一定的了解。对于自己的一些不足,小组成员能够耐心帮助,更让我体会到合作的重要性。*:经过这次操作系统课程设计的项目,我对操作系统中学到的知识认识的更清晰,更透彻。我也明白了个人的能力有限,而集体的能力无限,我们小组共同思考,共同讨论,共同搜集资料,集思广益,项目才能完成的圆满。在此次项目中,我参与了查找资料,需求分析,整理ppt等任务。项目的完成与每一个成员的付出和努力分不开关系,我很感谢这次课设项目提供给我们的机会。源程序清单packageNEW2;备注(包括源程序清单及其它说明)importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassOSextendsJFrameimplementsActionListenerJButtonb1,b2,b3,b4;JTabletable;JTextFieldj2,j3;Stringstr=JOptionPane.showInputDialog(请输入进程数:);intN=Integer.parseInt(str);Stringprocess_num=null;Stringarrive_time=null;Stringservice_time=null;Stringstart_time=null,end_time=null,total_time=null,weightotal_time=null;Stringa=newStringN7;Stringname=进程号,提交时间,运行时间,开始时间,结束时间,周转时间,”带权周转时间;doubleavgtotal_time,avgweightotal_time;publicOS()super(进程调度算法演示系统_2012_OS课程设计);Containerc=getContentPane();GridBagLayoutf=newGridBagLayout();GridBagConstraintsgbc=newGridBagConstraints();c.setLayout(f);table=newJTable(a,name);JScrollPanep1=newJScrollPane(table);gbc.gridwidth=GridBagConstraints.REMAINDER;gbc.gridheight=60;gbc.fill=GridBagConstraints.HORIZONTAL;f.setConstraints(p1,gbc);c.add(p1);JLabellabel6;label6=newJLabel(请输入”+N+组进程号+提交时间+运行时间:”);label6.setFont(newFont(楷体,Font.CENTER_BASELINE,16);label6.setForeground(newColor(250,0,0);gbc.gridwidth=GridBagConstraints.REMAINDER;gbc.gridheight=1;f.setConstraints(label6,gbc);c.add(label6);JLabellabel7=newJLabel();gbc.gridwidth=GridBagConstraints.REMAINDER;gbc.gridheight=1;f.setConstraints(label7,gbc);c.add(label7);JLabellabel2=newJLabel(平均周转时间:);label2.setFont(newFont(楷体,Font.BOLD,12);gbc.gridwidth=1;gbc.gridheight=1;f.setConstraints(label2,gbc);c.add(label2);j2=newJTextField(10);gbc.weightx=0.0;gbc.weighty=0.0;gbc.gridwidth=1;gbc.gridheight=1;f.setConstraints(j2,gbc);j2.setText(+avgtotal_time););c.add(j2);JLabellabel3=newJLabel(平均带权周转时间:label3.setFont(newFont(楷体,Font.BOLD,12);gbc.gridwidth=1;gbc.gridheight=1;f.setConstraints(label3,gbc);c.add(label3);gbc.gridheight=1;j3=newJTextField(1);gbc.ipadx=1;gbc.ipady=1;gbc.gridwidth=GridBagConstraints.REMAINDER;gbc.gridheight=1;f.setConstraints(j3,gbc);j3.setText(+avgweightotal_time);c.add(j3);bl=newJButton(先来先服务);b1.setFont(newFont(楷体”,Font.BOLD,15);gbc.gridwidth=1;gbc.gridheight=1;f.setConstraints(b1,gbc);c.add(b1);b2=newJButton(短作业优先);b2.setFont(newFont(楷体,Font.BOLD,15);gbc.gridwidth=1;gbc.gridheight=1;f.setConstraints(b2,gbc);c.add(b2);b3=newJButton(时间片轮转);b3.setFont(newFont(楷体,Font.BOLD,15);gbc.gridwidth=1;gbc.gridheight=1;f.setConstraints(b3,gbc);c.add(b3);b4=newJButton(高响应比优先);b4.setFont(newFont(楷体,Font.BOLD,15);gbc.gridwidth=GridBagConstraints.REMAINDER;gbc.gridheight=1;f.setConstraints(b4,gbc);c.add(b4);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);setSize(500,580);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);for(inti=0;iN;i+)for(intj=0;j3;j+)(System.out.println(aij);publicvoidactionPerformed(ActionEvente)(inti,j,n,p,h;doublet,s,m;doubleb=newdoubleN7;if(e.getSource().equals(b1)/先来先服务(try(for(i=0;iN;i+)(for(j=0;j3;j+)(bij=Double.parseDouble(aij);for(i=0;iN;i+)(for(j=0;jN;j+)(if(bi1=bj1)t=bi1;bi1=bj1;bj1=t;s=bi2;bi2=bj2;bj2=s;m=bi0;bi0=bj0;bj0=m;b03=b01;b04=b03+b02;b05=b04-b01;b06=b05/b02;for(i=1;i=bi1)bi3=bi-14;bi4=bi3+bi2;bi5=bi4-bi1;bi6=bi5/bi2;elsebi3=bi1;bi4=bi3+bi2;bi5=bi4-bi1;bi6=bi5/bi2;for(i=0;iN;i+)(for(j=0;j7;j+)(table.setValueAt(+bij,i,j);catch(Exceptionee)(ee.printStackTrace();if(e.getSource().equals(b2)/短作业优先(try(for(i=0;iN;i+)(for(j=0;j3;j+)(bij=Double.parseDouble(aij);for(i=0;iN;i+)(for(j=0;jN;j+)(if(bi1bj1)(t=bi1;bi1=bj1;bj1=t;s=bi2;bi2=bj2;bj2=s;m=bi0;bi0=bj0;bj0=m;b03=b01;b04=b03+b02;b05=b04-b01;b06=b05/b02;for(i=i1;i=bi1)(for(j=i;jN;j+)(if(bi-14bj1)(h=j;for(p=i;ph;p+)(for(n=i;nh;n+)(if(bp2=bN-11)(for(p=i;pN;p+)(for(n=i;nN;n+)(if(bp2bn2)(t=bp1;bp1=bn1;bn1=t;s=bp2;bp2=bn2;bn2=s;m=bp0;bp0=bn0;bn0=m;bi3=bi-14;bi4=bi3+bi2;bi5=bi4-bi1;bi6=bi5/bi2;if(bi-14bi1)(bi3=bi1;bi4=bi3+bi2;bi5=bi4-bi1;bi6=bi5/bi2;for(i=0;iN;i+)(for(j=0;j7;j+)(table.setValueAt(+bij,i,j);catch(Exceptionee)(ee.printStackTrace();if(e.getSource().equals(b3)/时间片轮转();JTextFieldtxt=newJTextField(5);Stringval=JOptionPane.showInputDialog(请输入时间片:txt.setText(val);Doubleslice=Double.parseDouble(txt.getText();/时间片轮转法intt0=1,t1=0,m1=1,m0=0;Doublec=newDoubleN;for(i=0;ic.length;i+)ci=0.0;for(i=0;iN;i+)(for(j=0;j3;j+)(bij=Double.parseDouble(aij);for(i=0;iN;i+)(for(j=0;jN;j+)(if(bi1=bj1)t=bi1;bi1=bj1;bj1=t;s=bi2;bi2=bj2;bj2=s;m=bi0;bi0=bj0;bj0=m;Doubler=b01;b03=b01;while(t0=1)t1=0;for(i=m0;im1+m0;i+)if(cibi2)t1=1;break;if(t1=1)for(i=m0;im1+m0;i+)if(cibi2)ci=ci+slice;r=r+slice;if(ci=bi2)bi4=r;while(m1=N-1)if(bm11=r)bm13=r;cm1=cm1+slice;r=r+slice;m1=m1+1;else(for(i=0;iN;i+)(if(ci=0.0)m0=i;r=r+bi1;break;bm03=bm01;t0=0;for(i=0;iN;i+)if(cibi2)t0=1;break;for(i=0;iN;i+)bi5=bi4-bi1;bi6=bi5/bi2;for(i=0;iN;i+)for(j=0;j7;j+)table.repaint();table.setValueAt(+bij,i,j);if(e.getSource().equals(b4)/高响应比优先调度doublett,ss,mm;doubled=newdoubleN;tryfor(i=0;iN;i+)for(j=0;j3;j+)bij=Double.parseDouble(aij);for(i=0;iN;i+)(for(j=0;jN;j+)(if(bi1bj1)t=bi1;bi1=bj1;bj1=t;s=bi2;bi2=bj2;bj2=s;m=bi0;bi0=bj0;bj0=m;b03=b01;b04=b03+b02;b05=b04-b01;b06=b05/b02;for(i=1;iN;i+)for(j=i;j=bi1)for(j=i;jN;j+)for(p=i;p=dp)t=dj;dj=dp;dp=t;tt=bj0;bj0=bp0;bp0=tt;s=dj;dj=dp;dp=s;ss=bj1;bj1=bp1;bp1=ss;m=dj;dj=dp;dp=m;mm=bj2;bj2=bp2;bp2=mm;bi3=bi-14;bi4=bi3+bi2;bi5=bi4-bi1;bi6=bi5/bi2;else(bi3=bi1;bi4=bi3+bi2;bi5=bi4-bi1;bi6=bi5/bi2;for(i=0;iN;i+)(for(j=0;j7;j+)(table.repaint();table.setValueAt(+bij,i,j);catch(Exceptionee)(ee.printStackTrace();for(i=0;iN;i+)(avgtotal_time=avgtotal_time+bi5;avgweightotal_time=avgweightotal_time+bi6;avgtotal_time=avgtotal_time/N;j2.setText(+avgtotal_time);avgweightotal_time=avgweightotal_time/N;j3.setText(+avgweightotal_time);publicstaticvoidmain(Stringargs)(OSa=newOS();
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!