Algorithm Muntz-Coffman算法(调度)

Algorithm Muntz-Coffman算法(调度),algorithm,scheduling,job-scheduling,Algorithm,Scheduling,Job Scheduling,我想知道如何准确计算时间片(2,4,5.5,7,8.5)。Muntz–科夫曼基本上是最重要的。每个作业的优先级是从该作业开始的依赖链的最长持续时间。在每个时间点,正在运行的作业都是具有最高优先级的作业 初始优先级在线性时间内以相反的拓扑顺序计算 K: 1 + max(0) = 1 H: 1 + max(0, K) = 2 I: 2 + max(0, K) = 3 J: 4 + max(0) = 4 E: 3 + max(0, H) = 5 F: 2 + max(0, H, I) = 5 G: 3


我想知道如何准确计算时间片(2,4,5.5,7,8.5)。

Muntz–科夫曼基本上是最重要的。每个作业的优先级是从该作业开始的依赖链的最长持续时间。在每个时间点,正在运行的作业都是具有最高优先级的作业

初始优先级在线性时间内以相反的拓扑顺序计算

K: 1 + max(0) = 1
H: 1 + max(0, K) = 2
I: 2 + max(0, K) = 3
J: 4 + max(0) = 4
E: 3 + max(0, H) = 5
F: 2 + max(0, H, I) = 5
G: 3 + max(0, I, J) = 7
A: 2 + max(0, E, F) = 7
B: 1 + max(0, E, F, G) = 8
C: 1 + max(0, G) = 8
D: 2 + max(0, F, G) = 9
D(2个单位)是唯一的最大值,因此它可以得到一台机器。B(1台机组)和C(1台机组)捆绑在一起,因此它们将另一台机器50/50分开。在时间t,D的优先级为9-2t,B和C的优先级为8-t。在这三项工作完成之前,它们保持在优先级7以上,第二高,D高于B和C,B和C保持平局

在时间2,次高的是A(2个单元)和G(3个单元),它们各自接收自己的机器。两个时间单位后,A完成,G的优先级降低到5,与E和F并列。现在,E、F和G都安排了一个偶数三向拆分,一直持续到时间5.5,此时G完成,其他的优先级为4,与J并列


三方工作持续到时间7,F完成,E和J的优先级下降到3。现在,E、I和J被调度,直到E完成,I和J的优先级降低到2,此时(时间8.5)H、I和J被调度。H和I结束,J为1,此时(时间10)J和K被安排为50/50,直到时间11结束。

请链接/参考。(这是一个很糟糕的例子,因为每次更改都伴随着一个作业结束。如果我们有三个独立的作业,持续时间分别为2、3、4,我们会在一台机器上安排3和4个作业,然后在一台机器上安排4个作业,在另一台机器上安排2和3个作业,然后在最后的1.5个单元中,所有三个作业平均分配。