抢占式优先级CPU调度算法

时间:2018-07-17 14:51:56

标签: process operating-system cpu scheduling

考虑一个执行三个任务T1,T2和T3的单处理器系统,每个任务由无限数量的作业(或实例)序列组成,这些作业分别周期性地以3、7和20毫秒的间隔到达。每个任务的优先级是其周期的倒数,可用任务按优先级顺序安排,优先级最高的任务排在最前面。 T1,T2和T3的每个实例分别需要1、2和4毫秒的执行时间。假设所有任务最初都在1毫秒开始时到达,并且允许任务抢占,则T3的第一个实例将在______________毫秒结束时完成其执行。

================================================ =======================

我的接受-我认为1st ms的开始意味着所有过程都在时间= 1到0到1的时间到达了IDLE。当我使用甘特图时,答案为13,而答案= 12

1 个答案:

答案 0 :(得分:0)

如您的问题所述,“每个任务的优先级是其周期的倒数,可用任务按优先级顺序进行安排,优先级最高的任务排在最前面”。因此,T1的优先级高于T2,T2的优先级高于T3。这意味着只要T1到达,它将抢占其他任务,而T2则抢占T3。

在任务T1,T2和T3中,每个任务都由无限的作业(或实例)序列组成,它们分别以3、7和20毫秒的间隔周期性地到达。而且,T1,T2和T3的每个实例分别需要1、2和4毫秒的执行时间。

因此,相应的甘特图将是:

T1 (0-1), T2 (1-2), T2 (2-3), T1 (3-4), T3 (4-5), T3 (5-6), T1 (6-7), T2 (7-8), T2 (8-9), 
                                                            T1 (9-10), T3 (10-11), T3 (11-12)...
// so first instance of T3 finishes at the end of 12 seconds.

  

我认为第一毫秒的开始意味着所有过程都在某个时间到达   = 1并且0到1的时间为空闲。当我使用甘特图时,答案为13,而答案= 12。

答案不匹配的原因是您的假设不正确

问题清楚地表明:“假设所有任务最初都在1毫秒的开始到达...”,这意味着任务在计时器启动后即第一毫秒开始时就已经到达(在上图中的提示中标记为0-1。