进程调度算法
调度算法指的是根据系统的资源分配策略所规定的的资源分配算法。
可以根据不同的环境来讨论调度算法:
批处理系统:
– 先来先服务:
非抢占式服务。每个就绪进程都会加入就绪队列中,每次调度队头的作业。
优缺点:利于长作业但不利于短作业。
– 短作业:
非抢占式服务。在队列中选择较短时间的进行调度。
优缺点:长作业可能会等待时间过长。
– 最短剩余时间优先:
抢占式服务。每次到来一个新进程会跟当前执行进程的剩余时间 作比较,如果新进程时间更短就挂起当前线程去执行新进程。
– 高响应比优先:
根据响应比(进程执行时间+等待时间 /等待时间)来进行调度。
相同等待时间时,短作业优先;而随着等待时间的增长,响应比会增大,提高了优先级,避免饥饿现象。
优缺点:兼顾了长短作业,但计算响应比的开销大。
交互系统:
– 时间片轮转:
非抢占式服务。预先规定时间片大小,同样是执行队头的进程,但当时间片用完后就会将当前进程放到队尾,执行下一进程。适合分时系统
– 优先级:
为每个进程设定优先级,大的先执行。
– 多级队列:
设置多个队列,每个队列的时间片依次增大,当上一个队列中的进程时间片用完了但还没有执行完就会放到下一队列中。
只有当上一队列没有进程在排队了,才能执行下一队列的进程。