欢迎来到天天文库
浏览记录
ID:9042455
大小:652.54 KB
页数:11页
时间:2018-04-15
《广东工业大学操作系统课程设计-两道批处理系统的两级调度-2》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、操作系统课程设计报告题目:两道批处理系统的两级调度-2操作系统课程设计任务书学生姓名专业班级学号题目两道批处理系统的两级调度-2指导教师题目编号2015秋-05本课程设计要求模拟实现一个的两道批处理系统的两级调度。通过具体的主要内容作业调度、进程调度等功能的实现,加深对批处理系统的两级调度模型和实现过程的理解。内存任何时候最多只允许有两道作业。要求作业从进入系统到最后完成,要经历两级调度:作业调度和进程调度。作业调度是高级调度,它的主要功能是根据一定的算法,为它们建立初始状态为就绪的作业进程。进程调度是低级调度,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。
2、1.作业调度分别采用先来先服务算法,进程调度采用可抢占的优先级调度算法。2.假定“预输入”程序已经把一批作业的信息存放在输入井了,并为它们建立了相应作业表。测试数据如下:作业进入时间估计运行时间优先数任务要求JOB110:0040分钟5JOB210:2030分钟3JOB310:3050分钟4JOB410:5020分钟63.优先数越小的优先级别越高。分别在不同算法控制下运行设计的程序,依次显示被选中作业、内存空闲区和磁带机的情况。比较不同算法作业的选中次序及作业平均周转时间。4.选用程序设计语言:C、C++等。[1]计算机操作系统,汤小丹等,西安电子科技大学出版社[2]操作系统
3、实验指导书,傅秀芬,广东工业大学(自编)参考文献[3]计算机操作系统教程(第二版),张尧学、史美林,清华大学出版社[4]现代操作系统,A.S.Tanenbaum著,陈向群等译机械工业出版社指导教师签字:审查意见系主任签字:年月日说明:本表由指导教师填写,由系主任审核后下达给选题学生,装订在设计(论文)首页一、主要内容本课程设计是实现两道批处理系统的两级调度-2,作业调度为先来先服务,进程调度为可抢占的优先级调度。二、任务要求作业调度分别采用先来先服务算法,进程调度采用可抢占的优先级调度算法。假定“预输入”程序已经把一批作业的信息存放在输入井了,并为它们建立了相应作业表。测试数
4、据如下:作业进入时间估计运行时间优先数JOB110:0040分钟5JOB210:2030分钟3JOB310:3050分钟4JOB410:5020分钟6优先数越小的优先级别越高。分别在不同算法控制下运行设计的程序,依次显示被选中作业、内存空闲区和磁带机的情况。比较不同算法作业的选中次序及作业平均周转时间。选用程序设计语言:C、C++等。三、设计思想说明1.先来先服务算法FCFS是最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中菜哦那个该算法时,系统将按照作业到达的先后次序来进行调度。2.抢占式优先级调度算法把处理机分配给当前优先级最高的进程,使之执行。
5、但在执行期间,只要出现了另一个其优先级更高的进程,调度程序就将处理机分配给新到的优先级最高的进程。3.两级调度1)作业依照先来先服务算法的顺序进入内存。2)Cpu依据内存中进程的优先级来调度进程3)若cpu运行中有更高优先级的进程进入内村,返回(2)4)若没有,进程运行到结束。四、数据结构的说明定义所需要的作业类。publicclassZuoyeimplementsCloneable{privateStringname;//作业名privateStringstate="W";//状态privateintntime;//需要运行的时间privateintatime=0;//已经
6、运行的时间privateintsupernum;//优先级privateintruntime;//开始运行的时间privateintftime;//结束时间privateintintime;//调入时间privateintztime;//周转时间privatefloatdztime;//带权周转}五、部分程序代码//以下代码均是在一个java线程对象中的方法//一秒的调度过程publicvoiddiaodu(inttime){Zuoyerun;//若内存未满,将外存作业调入while(main.size()<2&&outside.size()!=0){Zuoyeo=outsi
7、de.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.get(1).setState(
此文档下载收益归作者所有