Scheduling of mixed-criticality real-time systems

Real-time systems often contain different functionalities that are not all equally critical to the correct or safe behavior of the system. To guarantee temporal correctness of highly critical functionalities, we are typically required to do so under very pessimistic (weak) assumptions, e.g., using seriously over-approximated worst-case execution times generated by static analysis. For less-critical functionalities, we are typically satisfied with demonstrating temporal correctness under more realistic (strong) assumptions, e.g., using measured worst-case execution times. The strong and weak assumptions can vary wildly, and the gap is growing due to modern computer architecture and multicore processors.

To analyze and schedule such a system, the traditional solution is to either sacrifice efficiency (by using weak assumptions for all functionalities) or safety (by using strong assumptions). Mixed-criticality scheduling tries to alleviate this problem by considering the system with both strong and weak assumptions, and adapt the scheduling policy if it becomes apparent during runtime that the strong assumptions do not hold.