优先级调度算法+理解

本文详细解释了非抢占式和抢占式优先级调度算法的区别,通过实例说明了如何根据优先级和到达时间决定进程调度。静态优先级在创建时确定,动态优先级随进程运行变化。

Devour123大佬发布的原教程,行楷及#为个人总结理解

调度算法

优先级调度算法的类型:(非)抢占式优先级调度算法

优先级的类型:静态/动态优先级

静态:创建进程中确定,且运行期间保持不变。优先级是用某个范围内的整数表示的,如0~中的某个整数,该数为优先数

动态;在创建进程之初先赋予一个优先级,然后其值随着进程的推进和时间等待的增加而改变,能获取更好的调度性能

例(非抢占式):

优先数越大,优先级越高

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

0时刻(P1):只有P1到达,P1上处理机   #因为P1的到达时间为1,运行从1开始运行

7时刻(P2、P3,P4):P1运行完成主动放弃处理机,其余进程都已到达,P3优先级最高,P3上处理机

     #优先级:3(P3)>2(P2)=2(P4)

8时刻(P2、P4):P3完成,P2P4优先级相同,由于P2先到达,因此P2优先上处理机

     #当优先数相等时,到达时间小的优先运行  2(P2)< 5(P4)

例(抢占式):

以到达时间判断开始顺序,若该进程未运行完,到达下一个进程,则对比优先数,若该进程小于下一进程则该进程中断,优先运行下一进程,待下一进程运行完毕再次运行该进程

优先数越大,优先级越高

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

 

 

0时刻(P1):只有P1到达,P1上处理机。  

  #到达时间为0,从0开始运行

2时刻(P2):P2到达就绪队列,优先级比P1更高,发生抢占。P1回到就绪队列,P2上处理机。  

#到达时间为2,P1暂停转换P2运行 (P1运行2剩余5)

4时刻(P1、P3):P3到达,优先级比P2更高,P2回到就绪队列,P3抢占处理机。

#到达时间为4,(P2优先数)2<3(P3优先数),P2暂停转换P3运行 (P2运行2剩余2)

5时刻(P1、P2、P4):P3完成,主动释放处理机,同时,P4也到达,由于P2比P4更先进入就绪队列,因此选择P2上处理机

#P3运行完毕,到达时间为p4到达时间,P2P4优先数相同,因P2先运行,则P2继续运行(期间P1运行数最小不运行

7时刻(P1P4):P2完成,就绪队列只剩P1、P4,P4上处理机。

#P2运行完毕,P4运行

11时刻(P1):P4完成,P1上处理机

#P4运行完毕,P1运行

16时刻():P1完成,所有进程均完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值