使用最低松弛度优先调度算法,实时系统中存在三个周期性实时任务: 任务1周期10ms处理5ms,任务2周期20ms,处理10ms,任务3周期50ms处理15ms。请分析系统调度情况······

【若存在错误或不当之处,及时评论或者与我联系】

使用最低松弛度优先调度算法,实时系统中存在三个周期性实时任务: 任务1周期10ms处理5ms,任务2周期20ms,处理10ms,任务3周期50ms处理15ms。请分析系统调度情况,若能正常调度,请给出调度顺序,否则说明原因。

解:

其实很明显,调度不过来,不能正常调度。原因如下:

首先,任务图如下:

使用最低松弛度优先调度算法,实时系统中存在三个周期性实时任务: 任务1周期10ms处理5ms,任务2周期20ms,处理10ms,任务3周期50ms处理15ms。请分析系统调度情况······_第1张图片

那么,有了这个任务图之后,任务如何执行呢?

t0=0时,第一周期的任务1、2、3都到达战场,这个时候,需要计算松弛度:

1期任务1松弛度 = 10 - 5 - 0 = 5

1期任务2松弛度 = 20 - 10 - 0 = 10

1期任务3松弛度 = 50 - 15 - 0 = 35

所以执行1期任务1,并且这个任务直到执行结束也没有被抢占。

t1=5时,此时有第一周期任务2、3就位,这个时候,需要计算松弛度:

1期任务2松弛度 = 20 - 10 -5 = 5

1期任务3松弛度 = 50 - 15 - 5 =30

所以执行1期任务2,并且这个任务直到执行结束也没有被抢占。

t2=15时,此时正在等待的任务有1期任务3,2期任务1,需要计算松弛度:

1期任务3松弛度 = 50 - 15 - 15 = 20

2期任务1松弛度 = 20 - 15 - 5 = 0

所以需要执行2期任务1,并且可以直接执行完毕也没有被抢占。

t3=20时,此时正在等待的任务有3期任务1、2期任务2、1期任务3,需要计算松弛度:

3期任务1松弛度 = 30 - 20 - 5 = 5

2期任务2松弛度 = 40 - 20 -10 =10

1期任务3松弛度 = 50 - 20 -15 = 15

所以执行3期任务1,并且可以直接执行完毕也没有被抢占。

t4=25时,此时正在等待的任务有2期任务2、1期任务3,需要计算松弛度:

2期任务2松弛度 = 40 - 25 -10 = 5

1期任务3松弛度 = 50 -25 - 15 =10

所以执行2期任务2,花费10 ms时间,并且可以直接执行完毕也没有被抢占。

t5=35时,此时正在等待的任务有4期任务1、1期任务3,需要计算松弛度:

4期任务1松弛度 = 40 - 35 - 5 = 0

1期任务3松弛度 = 50 - 35 - 15 =0

所以这个时候两个任务都需要立刻执行,这里将导致必须错过一个任务,此周期任务无法正常调度,此时的正在进行的任务图如下:

使用最低松弛度优先调度算法,实时系统中存在三个周期性实时任务: 任务1周期10ms处理5ms,任务2周期20ms,处理10ms,任务3周期50ms处理15ms。请分析系统调度情况······_第2张图片

 

 

 

 

 

 

 

 

你可能感兴趣的:(操作系统,操作系统)