短进程优先算法C语言实现
目录:
1、实验说明:
2、程序定义:
3、源代码示例:
4、运行结果:
5、算法流程图:
6、C语言知识点:
1、实验说明:
答:本实验实现了短进程优先的进程调度操作,但因为是非抢占式,所以实现起来比较简单。
2、程序定义:
短进程优先算法是以作业的长短来计算优先级,作业越短,其优先级越高。作业的长短是以作业所要求的运行时间来衡量的。在把短作业优先调度算法用于作业调度时,它将从外存的作业后备队列中选择若干个估计运行时间最短的作业,优先将它们调入内存运行。
(1)PCB:
①作业号 ②到达时间 ③需要运行时间 ④开始时间 ⑤完成时间 ⑥周转时间 ⑦带权周转时间
(2)公式:
完成时间 = 开始时间 + 需要运行时间
周转时间 = 完成时间 - 到达时间
带权周转时间 = 周转时间 / 需要运行时间
(3)附:当全部进程执行完毕,
①打印出平均带权周转时间
②打印出调度顺序
③打印出平均周转时间
最先到的进程从0时刻到达,首先开始执行它。
比较处于等待队列中的进程的需要运行时间, 谁的需要运行时间短就先执行谁,如果需要运行时间相同则看它们的到达时间,到达时间早的先执行。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TAKEIN "Takein"//吸纳状态
#define WAIT "Wait"//就绪状态
#define RUN "Run"//运行状态
#define FINISH "Finish"//完成状