I. Introduction
Multicore processors are increasingly employed in real-time applications. The workload of many real-time software running on multicore chips can be naturally modeled as directed acyclic graphs (DAG), where nodes represent sequential computation units, also called subtasks, and edges represent functional dependencies between subtasks. OpenMP [6] programs, robotic software running on ROS [3], and automotive task chains [10] are instances of such applications.