Resilience-Aware Mixed-Criticality DAG Scheduling on Multi-cores for Autonomous Systems

Fully- and semi-autonomous systems are complex and safety-critical with strict timing and resource constraints, and have a deep processing pipeline with strong dependencies between different functions. Furthermore, tasks with different criticalities share the same hardware, and the scheduling strategy has to guarantee high criticality tasks' execution irrespective of interference from low criticality tasks whilst respecting the precedence constraints among tasks. Most static scheduling work considering task dependencies does not take into account the survivability of low criticality tasks, instead assuming that all low criticality tasks should be suspended or discarded after a mode change. Consequently, the schedules for high and low modes are different, so that more effort is needed to check the safety of schedules during mode change and with a potential increase in the migration cost as tasks may be executed on a different core after a mode change. This work proposes a novel mixed-criticality DAG-based multi-core static scheduling method considering low criticality tasks' survivability and precedence constraints between tasks with different criticalities. This produces a consistent schedule for different system modes enabling task-level mode change and improving the resilience of the system. Furthermore, the utilisation of computational resources is also improved by avoiding discarding low tasks.