欢迎来到天天文库
浏览记录
ID:36371099
大小:254.00 KB
页数:15页
时间:2019-05-10
《基于java进程调度算法模拟程序设计短作业优先先来先服务》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、华北科技学院计算机学院综合性实验报告华北科技学院计算机学院综合性实验实验报告课程名称计算机操作系统实验学期2014至2015学年第一学期学生所在系部计算机学院年级2012专业班级计科B121学生姓名张传辉学号201207014117任课教师王祥仲实验成绩计算机学院制第14页华北科技学院计算机学院综合性实验报告《操作系统》课程综合性实验报告开课实验室:基础六2014年11月30日实验题目进程调度算法模拟程序设计一、实验目的通过对进程调度算法的模拟,进一步理解进程的基本概念,加深对进程运行状态和进程调度过程、调度算法的理解。二、设备与环境1.硬件设备:PC机一台2.软件环境:安装Windo
2、ws操作系统或者Linux操作系统,并安装相关的程序开发环境,如CC++Java等编程语言环境。三、实验内容(1)用C语言(或其它语言,如Java)编程实现对N个进程采用某种进程调度算法(如动态优先权调度算法、先来先服务算法、短进程优先算法、时间片轮转调度算法)调度执行的模拟。(2)每个用来标识进程的进程控制块PCB可用结构来描述,包括以下字段:²进程标识数ID。²进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高。²进程已占用CPU时间CPUTIME。²进程还需占用的CPU时间ALLTIME。当进程运行完毕时,ALLTIME变为0。²进程的阻塞时间STARTBLOC
3、K,表示当进程再运行STARTBLOCK个时间片后,进程将进入阻塞状态。²进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后,将转换成就绪状态。²进程状态STATE。²队列指针NEXT,用来将PCB排成队列。(3)优先数改变的原则:²进程在就绪队列中呆一个时间片,优先数增加1。²进程每运行一个时间片,优先数减3。(4)为了清楚地观察每个进程的调度过程,程序应将每个时间片内的进程的情况显示出来,包括正在运行的进程,处于就绪队列中的进程和处于阻塞队列中的进程。(5)分析程序运行的结果,谈一下自己的认识。第14页华北科技学院计算机学院综合性实验报告代码:i
4、mportjava.io.BufferedReader;importjava.io.InputStreamReader;publicclassFCFSANDSJF{privatestaticinti;privateintj;privateinttemp;privateintm[];privateintn[];privateintprocess_number;privateintarrival_time[];privateintservices_time[];privateintstart_time[];privateintcompletion_time[];privateintturn
5、_around_time[];privatedoubleadd1;privatedoubleadd2;privatedoubleadd3;privatedoubleadd4;privatedoubleright_turn_around_time[];privatevoidFCFS(){System.out.println("===FCFS先来先服务算法===");System.out.println("到达时间是:");for(i=0;i6、.println("服务时间是:");for(i=0;in[j]){temp=n[i];n[i]7、=n[j];n[j]=temp;temp=m[i];m[i]=m[j];m[j]=temp;}}}start_time[m[0]]=arrival_time[m[0]];for(i=1;i
6、.println("服务时间是:");for(i=0;in[j]){temp=n[i];n[i]
7、=n[j];n[j]=temp;temp=m[i];m[i]=m[j];m[j]=temp;}}}start_time[m[0]]=arrival_time[m[0]];for(i=1;i
此文档下载收益归作者所有