Abstract :
In mixed-criticality systems, highly critical tasks must be temporally and logically isolated from faults in lower-criticality tasks. Such strict isolation, however, is difficult to ensure even for independent tasks, and has not yet been attained if low- and high-criticality tasks share resources subject to mutual exclusion constraints (e.g., Shared data structures, peripheral I/O devices, or OS services), as it is often the case in practical systems. Taking a pragmatic, systems-oriented point of view, this paper argues that traditional real-time locking approaches are unsuitable in a mixed-criticality context: locking is a cooperative activity and requires trust, which is inherently in conflict with the paramount isolation requirements. Instead, a solution based on resource servers (in the microkernel sense) is proposed, and MC-IPC, a novel synchronous multiprocessor IPC protocol for invoking such servers, is presented. The MC-IPC protocol enables strict temporal and logical isolation among mutually untrusted tasks and thus can be used to share resources among tasks of different criticalities. It is shown to be practically viable with a prototype implementation in LITMUSRT and validated with a case study involving several antagonistic failure modes. Finally, MC-IPC is shown to offer analytical benefits in the context of Vestal´s mixed-criticality task model.
Keywords :
protocols; LITMUSRT; MC-IPC protocol; mixed-criticality systems; novel synchronous multiprocessor IPC protocol; paramount isolation requirements; real-time locking approaches; synchronous IPC protocol; Bandwidth; Context; Delays; Interference; Protocols; Real-time systems; Servers; IPC; freedom-from-interference; inter-process communication; logical isolation; mixed-criticality; multiprocessors; real-time synchronization; temporal isolation;