Example #1
0
def apply_part_fmlp_bounds(all_tasks, preemptive=True):
    model = get_cpp_model(all_tasks)
    res = cpp.part_fmlp_bounds(model, preemptive)

    for i, t in enumerate(all_tasks):
        # remote blocking <=> suspension time
        t.suspended = res.get_remote_blocking(i)
        # all blocking, including local blocking
        t.blocked = res.get_blocking_term(i)
        t.local_blocking_count = res.get_local_count(i)
Example #2
0
def apply_part_fmlp_bounds(all_tasks, preemptive=True):
    model = get_cpp_model(all_tasks)
    res = cpp.part_fmlp_bounds(model, preemptive)

    for i, t in enumerate(all_tasks):
        # remote blocking <=> suspension time
        t.suspended = res.get_remote_blocking(i)
        # all blocking, including local blocking
        t.blocked = res.get_blocking_term(i)
        t.local_blocking_count = res.get_local_count(i)

    return res
Example #3
0
    def test_fmlp_remote(self):
        res = cpp.part_fmlp_bounds(self.rsi, True)

        self.assertEqual(0, res.get_blocking_count(3))
        self.assertEqual(0, res.get_blocking_term(3))

        self.assertEqual(2, res.get_blocking_count(0))
        self.assertEqual(5 + 7, res.get_blocking_term(0))

        self.assertEqual(2, res.get_blocking_count(1))
        self.assertEqual(3 + 7, res.get_blocking_term(1))

        self.assertEqual(2, res.get_blocking_count(2))
        self.assertEqual(3 + 5, res.get_blocking_term(2))