欢迎来到天天文库
浏览记录
ID:26711929
大小:167.00 KB
页数:5页
时间:2018-11-28
《操作系统实验报告2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、操作系统概念实验报告姓名王成敏学号20111489班级软件1104班指导教师那俊实验名称调度算法开设学期2013-2014年第一学期实验时间第7周评定成绩评定人签字评定日期东北大学软件学院2013年10月一、实验目的通过学习课本处理机调度的有关内容,包括进程占用处理机的策略方法。掌握优先权调度算法和时间片轮转法调度算法,以此加深对处理机调度的作用和工作原理的理解。并编写程序实现FCFS,SJF,Priority,RR的调度算法,以此加深对于相关调度算法的理解与认识。二、实验内容与实验步骤实验内容:在FCFS(先到先服务)、SJF(最短剩余时间优先
2、)、SRTF(抢占式最短剩余时间优先)Priority(优先队列)、RR(时间片轮转)等几种调度算法中选择一种调度算法实现,并写一个测试方法,测试调度算法的正确性。在本实验中我选择实现的调度算法是:RR(时间片轮转)三、实验环境Windows7操作系统,程序运行环境Eclipse9.0四、实验过程与分析1.为程序设置整体的数据结构:进程的信息存储在进程控制块PCB中,根据题目要求,PCB中应包含如下信息:l进程名——作为进程的标识,l运行时间——进程需要运行的单位时间数。l优先数——赋予进程的优先权,调度时总是选取优先数大的进程先执行。l到达时间
3、——进程到达进程队列的时间数。为此为PCB设置相应的类PCB,包含如下信息:publicclassProcess{privateStringname;//进程名称privateintlastTime;//进程区间时间privateintarriveTime;//进程到达时间privateintpriority;//进程优先级其次,还需要设置进程运行的就绪队列,作为动态存储进程的工具,我在这儿设计了一个操作队列的Queue类,代码如下:publicclassQueue{Process[]p;intfront;intrear;publicQueue(
4、){//TODOAuto-generatedconstructorstub}publicQueue(intsize){p=newProcess[size];front=0;rear=0;}/***将一个对象追加到队列的尾部**/publicbooleanenqueue(Processprocess){if((rear+1)%p.length==front){returnfalse;}p[rear]=process;rear=(rear+1)%p.length;returntrue;}/***队列头部的第一个对象出队*/publicProcessd
5、equeue(){if(rear==front){returnnull;}Processprocess=p[front];front=(front+1)%p.length;returnprocess;}publicbooleanIsEmpty(){if(rear==front){returntrue;}else{returnfalse;}}publicProcessgetQueue(){if(rear==front){returnnull;}Processprocess=p[front];returnprocess;}}在主调类中,定义了RR(P
6、rocess[]processes)方法,该方法中完成了调用过程:系统把所有就绪进程按先到先服务的原则排成一个队列。新来的进程加到就绪队列末尾。每当执行进程调度时,进程调度程序总是选出队列的队首进程,让它在CPU上运行一个时间片的时间。当进程用完分给它的时间片后,调度程序便停止该进程的运行,并把它放入队列的末尾。代码如下://轮转法调度算法publicstaticvoidRR(Process[]processes){Scannerscanner=newScanner(System.in);System.out.println("请输入轮转周期:"
7、);intturnAroundPeriod=Integer.parseInt(scanner.next());//队列初始化Queuequeue=newQueue(processes.length+1);//进程进入队列for(inti=0;i8、tem.out.println(process.getName()+"执行,花费时间为"+process.getLastTime());
8、tem.out.println(process.getName()+"执行,花费时间为"+process.getLastTime());
此文档下载收益归作者所有