else if(currentTime == firstArriveTime)//当时间来到第一个进程的到达时间,调度该进程 runFirstJob(pcb); else{ //根据短进程优先开始调度 currentTime--; runOtherJob(pcb); } } printf("1、进程调度顺序为:%s, %s, %s, %s, %s\n", pcb[0].jobName, JobArray[1], JobArray[2], JobArray[3]...
从进程执行时间最短,转为进程优先级最高,并额外再增加一个进程阻塞队列(根据实验要求),而阻塞队列也是根据阻塞的开始时间,与阻塞的过程时间来与当前time时间值进行判断的,因此,在SJF算法的基础上,HRRN算法的实现也就变的不再相对复杂,因此一开始声明的HRRN的复杂是相对于从0开始编写的复杂性。
const int Quatum=2;//定义时间片的长度为2秒 const int MAXPCB=100;//定义最大进程数 //定义进程结构体 typedef struct node { char name[20];//进程名 int time; //进程运行时间 int privilege;//进程优先级(静态)int finished;//进程完成标志,0-未完成,1-已完成 int wait_time;...
以下是实验的代码: Process.Java是测试类,用于生成进程列表和测试三种不同的调度策略。 SJF.java是模拟实现最短作业优先的调度策略。 RR.java是模拟实现时间片轮转的调度策略。 HRRN.java是模拟最高响应比的调度策略。 (0)踩踩(0) 所需:3积分 m0_372139432017-11-01 18:37:09 评论 ...
进程需要执行时间; 进入就绪队列时间; 进程执行开始时间 进程执行结束时间 编程实现调度算法。 进程及相关信息的输入。这些信息可以直接从键盘上输入,也可以从文件读取。 时间片与时间流逝的模拟。本实验需要对算法的执行计时,程序应该提供计算时间的方法。一种最简单的方法是使用键盘,比如每敲一次空格代表一个时间片的...