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完成,所有进程均完成



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

1308

被折叠的 条评论
为什么被折叠?



