进程的调度方式
...大约 2 分钟
进程的调度方式
进程的调度方式
进程的调度主要分为两种方式,非剥夺调度(非抢占调度)和剥夺调度(抢占调度)
非抢占式调度
非抢占式调度:只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或者主动要求进入阻塞状态
非抢占式调度主要有:
1.先来先服务调度:每次从就绪队列选择最先进入队列的进程,然后一直运行,直到进程退出或被阻塞,才会继续从队列中选择第一个进程接着运行。(实现简单,但不利于短作业以及I/O密集型进程)
2.短作业优先调度:按照执行时间最短的进程先执行。该算法可以减少平均等待时间,但是要预先知道进程的执行时间。(容易长作业饥饿,实现困难)
3.高度响应比优先调度:响应比为:等待时间/服务时间,响应比高的先执行,可以避免饥饿现象(平衡了前两种方式)
抢占式调度
抢占式调度:当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程
抢占式调度主要有:
1.最短剩余时间优先调度(SPTN):当一个新的作业到达时,其整个运行时间与当前进程的剩余时间作比较,如果新的进程需要的时间更少,则挂起当前进程,运行新的进程。否则新的进程等待
2.时间片轮转调度:给每一个进程都分配一个时间片,时间片实行完毕就会切换进程,执行下一个进程,依次循环。此算法容易频繁的切换进程,浪费系统资源
3.多级反馈队列调度:多级反馈队列调度算法是对其他算法的一个折中权衡,是【时间片轮转算法】和【最高优先级算法】的综合和发展
优先级调度既有抢占式也有非抢占式:他是按照设定优先级执行,抢占式是动态调整优先级,如按照运行时间调整优先级。非抢占式是创建进程就设定了(适用实时系统,对低级优先级进程不利)