【问题标题】:Priority based preemptive Shortest Job First. How to determine what process comes first基于优先级的抢先式最短作业优先。如何确定哪个过程先出现
【发布时间】:2013-09-03 02:05:19
【问题描述】:

我对基于优先级的抢先式最短作业优先算法有疑问。如果两个进程具有相同的优先级,那么谁是第一个。最先放入的还是突发时间较短的?如果我有 2 个具有相同突发时间的进程,突发时间也是如此,我是否按优先级排序?如果 2 个进程具有相同的突发时间和优先级会发生什么?

例如,基于此表的甘特图会是什么样子?

           Arrival Time    Burst Time    Priority
p0              0              8            2
p1              4              15           5
p2              7              9            3
p3              13             5            1
p4              9              13           4
p5              0              6            1

【问题讨论】:

    标签: algorithm jobs shortest preemptive


    【解决方案1】:

    顾名思义,您首先选择一组优先级最高的作业。

    然后,从该集合中选择最短的作业。在这种情况下,我假设“突发时间”代表预期的执行时间(或屈服时间)。

    因此假设您的较低优先级数字代表“较高”优先级作业,p3 和 p5 是两个最高优先级作业。

    此时,重要的是预期的工作大小(突发时间),此时您选择突发时间最短的工作。在这种情况下,它将是 p3。

    【讨论】:

    • 那么这是否意味着甘特图看起来像这样? |p3|p5|p0|p2|p4|p1|
    • 对我来说听起来像是家庭作业。如果是这样,我建议您与班上的其他人讨论。我从来没有使用甘特图来表示进程调度。
    • 是的,这是我必须在 c++ 中进行 cpu 调度的任务。我让 fcfs 和循环法工作,但我只是不了解基于优先级的抢先式最短作业优先,我需要一些示例来检查编码是否给出正确答案
    • 您的文本和/或讲义应该有几个示例供您使用。您在上面给出的列表对于您的原始表的安排看起来是正确的。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 2014-11-26
    • 2017-02-17
    • 2019-09-03
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    相关资源
    最近更新 更多