2012-12-05 48 views
0
 
Process  Burst Time  Arrival Time  Priority 
P1   5    0    1 
P2   1    0    3 
P3   2    2    1 
P4   4    4    2 
P5   2    4    2 
P6   3    5    3 
P7   4    5    3 

嗨,大家好。我们被赋予了关于抢占式优先级调度的任务,并且我真的不知道如何在具有相同优先级编号的两个或多个进程中执行此操作。作业 - 抢先优先排程

我必须制作甘特图,计算周转时间和平均等待时间。

如果可能,你们可以发布一步一步的解决方案,了解如何做到这一点,以便我可以研究它是如何完成的。

感谢您的帮助球员。

+2

如果这是一个概念性问题,它会更适合[programmers.se]或可能[rational.se]。 – GraphicsMuncher

回答

0

首先:两个具有相同优先级的进程通常会根据它们的到达时间进行排序:所以先来先服务。

转身时间:通常是指过程产生输出所需的时间量。您的课程可能会使用不同或更简单的定义来简化计算。从我所看到的你可能被要求计算每个过程完成所花费的时间量。这等于:finish_time - time_first_scheduled_on_CPU(不是finish_time - arrival_time)。

平均等待时间:根据您开发的甘特图,它精确地显示了某个进程在CPU上的时间和时长,您可以计算每个进程等待获取CPU的总时间。

这包括:到达之间

  1. 大量的时间和当它第一次安排在CPU
  2. 如果进程具有较长的执行时间比单量子,那么你需要总结所有的所花的时间关闭的CPU
  3. 添加两个量在一起,你有总的等待时间过程
  4. 重复步骤1-3为每个进程和取平均值。
+0

嗯。从我的例子来看,P1和P3的优先级是1 ... P1的到达时间为0,但突发时间为5. P3的到达时间为2,但突发时间为2. 如果P1先完成所有5个单元在去P3的2个单位之前? 或P1先完成1个单位然后让P3有2个单位然后完成4? –

+0

是的,所以P1会先运行。 – ose

+0

由于P3具有相同的优先级,所以P1会运行完成。可以这样想:一名将军可以抢先一名中尉,但一名中尉不能抢先占领一名将军。最重要的是,所有的中尉都是平等的,所以A中尉不能抢先占领B中尉。 – ose