I. Introduction
With the end of Moore’s Law, the computer world has been rapidly developing in the direction of multi-core systems. Modern applications have to support parallel execution in order to exploit the computational resources provided by multicore systems thoroughly. Many parallel applications, such as OpenMP [11], and robotic software executed on ROS [10], can be naturally modeled as directed acyclic graphs (DAGs), in which nodes represent sequential execution units, also called subtasks, and edges represent precedence constraints between subtasks. Branches in a DAG characterize the parallelism in applications. Researchers have proposed various real-time scheduling algorithms and schedulability analysis methods for DAG-based task models.