【操作系统】进程调度的四种算法
作业由作业流进入输入井然后触发作业调度选择作业进入主存区,创建进程之后,系统会对进程控制块进行分类链入队列,在就绪队列中的进程会触发进程调度,选择合适的进程占用cpu资源。进程调度会根据合适的算法进行调度,下面简单的说一下四种常见的算法。
1.先到先服务调度算法
进程就绪队列的进程实行先来先服务的调度算法,这个很好理解了,就是先进入就绪队列的进程会先占用cpu资源,cpu会把该作业处理完毕后再释放资源,就像你排队一样,先来先服务,一样的道理,但是这个算法存在很大的一个缺陷,比如进程A需要占用3ms的cpu资源,进程B需要占用4ms的cpu资源,进程C需要占用20ms的cpu资源,由于进入就绪队列的随机性,因此,可能依次进入队列的顺序就是A,B,C,这样的话它们的平均等待时间就为(0+3+7)/3 = 10/3ms ,但是如果是进程C先进入队列,其次是进程A,B呢,那么平均等待时间就为(0+20+23)/3 = 27/3 ms ,明显比ABC这种情况要多出很多时间,但是就是因为进程队列的进入随机性,使用这种算法的进程调度是效率非常低下的。
2.最高优先级调度算法
当优先级相同的时候,这种算法经常和先到先服务调度算法一起使用。这种调度算法有两种方式,第一种是非抢占式的,它会等待当前优先级最高的进程占用cpu资源并且处理完毕后才会释放资源。第二种是抢占式的,当当前进程占用cpu资源时,比它