Real-time mixed-criticality systems have stringent timing requirements in the form of hard deadlines and a collection of tasks having different levels of importance or criticality hosted on a single hardware platform. Avionics and automotive are two well known domains for such systems, where the criticality level has a strong correlation with the assurance levels used for certification. Traditionally, static processor partitioning, in the form of fixed allocation of processing time, has been employed to ensure isolation between the different criticality tasks and guarantee task deadlines. However, due to increasing software and hardware complexity, determining a tight bound on the worst-case execution time of tasks is becoming increasingly difficult. As a result, pessimistic upper-bounds are often used for critical tasks, and this leads to a significant processor under-utilisation when used with static partitioning. To overcome this inefficiency, the concept of mixed-criticality scheduling has emerged in the last decade. Under this paradigm, processing capacity is partitioned among all the tasks using a less conservative execution time estimate. In the eventuality that some critical task requires additional execution, the schedule is adapted to favour the critical tasks over less critical ones.
展开▼