コード例 #1
0
def task_schedulable_for_offset(all_tsks, tsk_k, a_k, m):
    """Tests condition 8 from the paper"""
    I1s = [I1(tsk_i, tsk_k, a_k) for tsk_i in all_tsks]
    Idiffs = [
        I2(tsk_i, tsk_k, a_k) - i1 for (tsk_i, i1) in izip(all_tsks, I1s)
    ]
    Idiff = topsum(Idiffs, None, m - 1)
    return sum(I1s) + Idiff <= m * (a_k + tsk_k.deadline - tsk_k.cost)
コード例 #2
0
ファイル: bar.py プロジェクト: GElliott/schedcat
def ak_bounds(all_tsks, m):
    U = all_tsks.utilization()
    c_sigma = topsum(all_tsks, lambda t: t.cost, m - 1)
    y = sum([(t.period - t.deadline) * t.utilization() for t in all_tsks])
    mu      = m - U
    def ak_bound(tsk_k):
        # Equation 9 in the paper
        return (c_sigma - tsk_k.deadline * mu + y + m * tsk_k.cost) / mu
    return [ak_bound(t) for t in all_tsks]
コード例 #3
0
ファイル: bar.py プロジェクト: tobiasblass/schedcat
def ak_bounds(all_tsks, m):
    U = all_tsks.utilization()
    c_sigma = topsum(all_tsks, lambda t: t.cost, m - 1)
    y = sum([(t.period - t.deadline) * t.utilization() for t in all_tsks])
    mu      = m - U
    def ak_bound(tsk_k):
        # Equation 9 in the paper
        return (c_sigma - tsk_k.deadline * mu + y + m * tsk_k.cost) / mu
    return [ak_bound(t) for t in all_tsks]
コード例 #4
0
ファイル: bar.py プロジェクト: GElliott/schedcat
def task_schedulable_for_offset(all_tsks, tsk_k, a_k, m):
    """Tests condition 8 from the paper"""
    I1s    = [I1(tsk_i, tsk_k, a_k) for tsk_i in all_tsks]
    Idiffs = [I2(tsk_i, tsk_k, a_k) - i1 for (tsk_i, i1) in izip(all_tsks, I1s)]
    Idiff  = topsum(Idiffs, None, m -1)
    return sum(I1s) + Idiff <= m * (a_k + tsk_k.deadline - tsk_k.cost)
コード例 #5
0
ファイル: util.py プロジェクト: Mutinifni/schedcat3
 def test_topsum(self):
     vals = [30, 60, 10, 40, 50, 20]
     self.assertEqual(m.topsum(vals, lambda x: x * 2, 3), 2 * (40 + 50 + 60))
     self.assertEqual(m.lcm(99), 99)
     self.assertEqual(m.lcm(10, 20, 3), 60)
コード例 #6
0
 def test_topsum(self):
     vals = [30, 60, 10, 40, 50, 20]
     self.assertEqual(m.topsum(vals, lambda x: x * 2, 3), 2 * (40 + 50 + 60))
     self.assertEqual(m.lcm(99), 99)
     self.assertEqual(m.lcm(10, 20, 3), 60)