Mixed criticality systems are systems on which safety-critical and non safety-critical software must run simultaneously. For such a system it is necessary that all deadlines of safety critical jobs can be met, and no safety-critical function is impaired by any other function.
Current approaches for designing such a system include virtualization, hardware partitioning or implementing all software as critical software.
These approaches however introduce additional costs due to additional hardware, more complicated development techniques for non-critical software or loss of processing power due to the virtualization layer.
We demonstrate a novel method for implementing a system, that provides lean interfaces for real-time software and a full Unix interface for non real-time software. This system uses vertical partitioning to run two different operating systems on two cores of a single ARM multiprocessor.
A similar method has previously been used to run two differently configured Linux kernels on two separate cores of an x86 System.
Other vertical partitioning setups first start the Linux system and then set aside a separate core for real-time work using core isolation methods provided by Linux.
This however greatly increases the startup time of the real time portions as the complete Linux system has to be up and running before the real-time core can be isolated.
The implementation method described here was used for implementing an interactive monitoring and control system in electric cars.
To read more, download the complete paper from the author online archives at Tier University.