广工操作系统课程设计_第1页
广工操作系统课程设计_第2页
广工操作系统课程设计_第3页
广工操作系统课程设计_第4页
广工操作系统课程设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统课程设计报告 题目:两道批处理系统的两级调度-2 操作系统 课程设计任务书学生姓名专业班级学号题 目两道批处理系统的两级调度-2指导教师题目编号2015秋-05主要内容本课程设计要求模拟实现一个的两道批处理系统的两级调度。通过具体的作业调度、进程调度等功能的实现,加深对批处理系统的两级调度模型和实现过程的理解。任务要求 内存任何时候最多只允许有两道作业。要求作业从进入系统到最后完成,要经历两级调度:作业调度和进程调度。作业调度是高级调度,它的主要功能是根据一定的算法,为它们建立初始状态为就绪的作业进程。进程调度是低级调度,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。

2、1. 作业调度分别采用先来先服务算法,进程调度采用可抢占的优先级调度算法。2. 假定“预输入”程序已经把一批作业的信息存放在输入井了,并为它们建立了相应作业表。测试数据如下: 作业 进入时间 估计运行时间 优先数 JOB1 10:00 40分钟 5 JOB2 10:20 30分钟 3 JOB3 10:30 50分钟 4 JOB4 10:50 20分钟 63. 优先数越小的优先级别越高。分别在不同算法控制下运行设计的程序,依次显示被选中作业、内存空闲区和磁带机的情况。比较不同算法作业的选中次序及作业平均周转时间。4. 选用程序设计语言:C、C等。参考文献1 计算机操作系统, 汤小丹等

3、,西安电子科技大学出版社2 操作系统实验指导书,傅秀芬,广东工业大学(自编)3 计算机操作系统教程 ( 第二版 ), 张尧学、 史美林,清华大学出版社4 现代操作系统,A.S.Tanenbaum 著,陈向群等译机械工业出版社审查意见指导教师签字:系主任签字: 年 月 日 说明:本表由指导教师填写,由系主任审核后下达给选题学生,装订在设计(论文)首页一、 主要内容本课程设计是实现两道批处理系统的两级调度-2,作业调度为先来先服务,进程调度为可抢占的优先级调度。二、 任务要求作业调度分别采用先来先服务算法,进程调度采用可抢占的优先级调度算法。假定“预输入”程序已经把一批作业的信息存放在输入井了,并

4、为它们建立了相应作业表。测试数据如下: 作业 进入时间 估计运行时间 优先数 JOB1 10:00 40分钟 5 JOB2 10:20 30分钟 3 JOB3 10:30 50分钟 4 JOB4 10:50 20分钟 6优先数越小的优先级别越高。分别在不同算法控制下运行设计的程序,依次显示被选中作业、内存空闲区和磁带机的情况。比较不同算法作业的选中次序及作业平均周转时间。选用程序设计语言:C、C等。三、 设计思想说明1. 先来先服务算法FCFS是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中菜哦那个该算法时,系统将按照作业到达的先后次序来进行调度。2. 抢占式优先级

5、调度算法把处理机分配给当前优先级最高的进程,使之执行。但在执行期间,只要出现了另一个其优先级更高的进程,调度程序就将处理机分配给新到的优先级最高的进程。3. 两级调度1) 作业依照先来先服务算法的顺序进入内存。2) Cpu依据内存中进程的优先级来调度进程3) 若cpu运行中有更高优先级的进程进入内村,返回(2)4) 若没有,进程运行到结束。四、 数据结构的说明定义所需要的作业类。public class Zuoye implements Cloneableprivate String name; /作业名private String state="W"/状态private

6、int ntime;/需要运行的时间private int atime=0; /已经运行的时间private int supernum; /优先级private int runtime; /开始运行的时间private int ftime; /结束时间private int intime; /调入时间private int ztime; /周转时间private float dztime;/带权周转五、 部分程序代码/以下代码均是在一个java线程对象中的方法/一秒的调度过程public void diaodu(int time)Zuoye run;/若内存未满,将外存作业调入while(ma

7、in.size()<2 && outside.size()!=0)Zuoye o = outside.get(0);main.add(o);outside.remove(0);/把内存进程按优先级排序Collections.sort(main, m2);/若内存不为空,运行进程if(main.size()!=0) run = main.get(0); /若第一次运行,给进程的开始运行时间赋值 if(run.getRuntime()=-1) run.setRuntime(time); /进程运行 run.running(); if(main.size()=2) main.g

8、et(1).setState("W"); this.funcintime();/即将调入外存的程序减少一秒等待时间public void funcintime()for(int i=0;i<copyinfo.size();i+)Zuoye o=copyinfo.get(i);o.setIntime(o.getIntime()-1);if(o.getIntime()=0)outside.add(o);copyinfo.remove(i);i-;/零时刻若有进程调入,调入外存public void funczerotime()for(int i=0;i<copyin

9、fo.size();i+)Zuoye o = copyinfo.get(i);if(o.getIntime()=0)outside.add(o);copyinfo.remove(i);i-;/深度复制Listpublic void cloneList() copyinfo = new ArrayList<Zuoye>(my.size(); Iterator<Zuoye> iterator = my.iterator(); while (iterator.hasNext() copyinfo.add(Zuoye) iterator.next().clone(); /* *

10、 重写线程的run方法 */Overridepublic void run() / TODO Auto-generated method stub/定义秒数int time=0;/将完成组清空 finish.clear(); /显示Finishinfo f = new Finishinfo();f.setInfo(finish);jt4.setModel(f);/将Originalinfo 复制this.cloneList();/按调入时间排序Collections.sort(copyinfo, m1);/零时刻的情况this.funczerotime();/整个调度的过程while(copy

11、info.size()+outside.size()+main.size()>0)try Thread.sleep(1000); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();/一秒的调度过程this.diaodu(time);/秒数增加time+;/若有作业完成,调出到finishif(main.size()!=0 && main.get(0).getNtime()=0)Zuoye run = main.get(0);/计算完成时间,周转时间,带权周转时间run.setFtime(time);run.setZtime(run.getFtime()-run.getZtime();run.setDztime(run.getZtime()/run.getDztime();main.remove(0);if(main.size()!=0) Zuoye next = main.get(0);next.setState("R");if(next.getRuntime()=-1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论