【问题标题】:Preemptive Priority CPU scheduling Algorithm [closed]抢占式优先级 CPU 调度算法 [关闭]
【发布时间】:2018-07-17 14:51:56
【问题描述】:

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

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

My Take - 我在第 1 毫秒开始意味着所有进程都在时间 = 1 到达,0 到 1 时间是空闲的。当我拿甘特图时,我得到的答案是 13,而 answer = 12

【问题讨论】:

    标签: process operating-system cpu scheduling


    【解决方案1】:

    如您的问题所述,“每个任务的优先级是其周期的倒数,可用任务按优先级顺序安排,优先级最高的任务首先安排”。因此,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 毫秒的开始意味着所有进程都按时到达 = 1 和 0 到 1 时间是 IDLE。当我拿甘特图时,我得到的答案是 13,而答案 = 12。

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

    问题明确表示“鉴于所有任务最初在第 1 毫秒开始时到达......”,这意味着任务在计时器开始时立即到达,即第一个毫秒开始时(在上面绘制的图表中我的提示中标记为 0-1)。

    【讨论】:

    • 太棒了,解释得很好! :)
    猜你喜欢
    • 2013-06-01
    • 1970-01-01
    • 2019-05-23
    • 2015-03-06
    • 2012-11-22
    • 1970-01-01
    • 2021-07-19
    • 2014-04-25
    • 1970-01-01
    相关资源
    最近更新 更多