| (1) // Combination of overlapping execution intervals |
| (2) // Boolean controlling after migration whether RZ is no longer overloaded by |
| (3) // Load of the RZ corresponding to |
| (4) // The set of RZs helpful for partial migration |
| (5) // The set of tasks that might perform partial migration |
| (6) for all giving overloaded RZ do |
| (7) False |
| (8) while ( = False) and () do |
| (9) // Total migration of tasks |
| (10) Select the interval from that gives the most heavy occupation rate and discard it from . |
| (11) Check whether the iteration, corresponding to the execution interval of the selected task, is studied on another |
| non-overload RZ and update the load of the overloaded RZ after the elimination of the selected task. |
| (12) if then |
| (13) True |
| (14) end if |
| (15) end while |
| (16) if then |
| (17) Reinitialize and with its tasks |
| (18) |
| (19) |
| (20) // Partial migration of tasks |
| (21) Omit the tasks from the overloaded RZ, corresponding to , that are also acceptable by another RZs () and |
| reduce their occupation rates from the loads of these RZs. These latter RZs with the overloaded RZ corresponding to |
| are included in the set . The omitted tasks are included in |
| (22) while do |
| (23) In set, start by the task that gives the best trade-off between least number of RZs in |
| where it could migrate and heaviest occupation rate in the overloaded RZ. |
| (24) During , within the selected task, choose the biggest execution sections that could be placed in RZs from the |
| set without overloading them. |
| (25) Update the load of RZs receiving execution sections from the selected task |
| (26) if Some execution sections of the selected task are not placed then |
| (27) Reinitialize the loads of RZs in to values before processing |
| (28) Increment the number of RZ corresponding to up to , go to 6 |
| (29) else |
| (30) Discard the selected task from . |
| (31) end if |
| (32) end while |
| (33) // All the execution sections of tasks are placed |
| (34) |
| (35) end if |
| (36) end for |