优先级进程调度算法,是把处理机分配给就绪队列中优先级最高的进程。这时,又可进一步把该算法分成如下两种。

  1. 非抢占式优先级调度算法。
  2. 抢占式优先级调度算法。

优先级的类型
静态优先级
静态优先级是在创建进程时确定的,在进程的整个运行期间保持不变。优先级是利用某一范围内的一个整数来表示的,例如0~255中的某一整数,把该整数称为优先数。
动态优先级  
动态优先级是指在创建进程之初,先赋予其一个优先级,然后其值随进程的推进或等待时间的增加而改变,以便获得更好的调度性能。

 

(非抢占式)
例题:各进程到达就绪队列的时间、需要的运行时间、进程优先数如下表所示。使用非抢占式的优先级调度算法,分析进程运行情况。(优先数越大,优先级越高)

调度过程:正在处理的进程处理结束,接下来每次调度时选择当前已到达且优先级最高的进程。

注:以下括号内表示当前处于就绪队列的进程

java优先级进程调度 进程优先数调度_优先数

 

 

0时刻(P1):只有P1到达,P1上处理机。
7时刻(P2、P3,P4):P1运行完成主动放弃处理机,其余进程都已到达,P3优先级最高,P3上处理机。
8时刻(P2、P4):P3完成,P2P4优先级相同,由于P2先到达,因此P2优先上处理机

(抢占式)
例题:各进程到达就绪队列的时间、需要的运行时间、进程优先数如下表所示。使用抢占式的优先级调度算法,分析进程运行情况。(优先数越大,优先级越高)

调度过程:每次调度时选择当前已到达且优先级最高的进程。当前进程主动放弃处理机时发生调度。就是在运行进程的过程中,放弃当前进行,去进行优先级高的进程。

以下括号内表示当前处于就绪队列的进程

java优先级进程调度 进程优先数调度_P4_02

 

 

0时刻(P1):只有P1到达,P1上处理机。
2时刻(P2):P2到达就绪队列,优先级比P1更高,发生抢占。P1回到就绪队列,P2上处理机。
4时刻(P1、P3):P3到达,优先级比P2更高,P2回到就绪队列,P3抢占处理机。
5时刻(P1、P2、P4):P3完成,主动释放处理机,同时,P4也到达,由于P2比P4更先进入就绪队列,因此选择P2上处理机
7时刻(P1P4):P2完成,就绪队列只剩P1、P4,P4上处理机。11时刻(P1):P4完成,P1上处理机
16时刻():P1完成,所有进程均完成