Parallel real-time embedded applications can be modelled as directed acyclic graphs (DAGs) whose nodes model subtasks and whose edges model precedence constraints among subtasks. Efficiently scheduling such parallel tasks can be challenging in itself, particularly in hard real-time systems where it must be ensured offline that the deadlines of the parallel applications will be met at run time. In this paper, we tackle the problem of scheduling DAG tasks on identical multiprocessor systems efficiently, in terms of processor utilisation. We propose a new algorithm that attempts to use dedicated processor clusters for high-utilisation tasks, as in federated scheduling, but is also capable of reclaiming the processing capacity lost to fragmentation, by splitting the execution of parallel tasks over different existing clusters, in a manner inspired by semi-partitioned C=D scheduling (originally devised for non-parallel tasks). In the experiments with synthetic DAG task sets, our Segmented-Flattened-and-Split scheduling approach achieves a significantly higher scheduling success ratio than federated scheduling.
翻译:暂无翻译