What are real-time containers?

Container-based virtualization has gained significant importance in software applications deployment. It provides near-native performance with low memory footprints and rapid start-up times. The technology seems promising for mixed-criticality industrial systems in which companies aim to co-locate applications from multiple vendors in shared computing environments.

Applications, in general, may not be trustworthy. They may alter (intentionally or unintentionally) the host system, other co-located applications, or their data. Container-based virtualization provides spatial isolation of containerized applications that ensures that containerized applications can not directly alter any applications or data outside of the containers. Thus, the results produced by co-located applications are correct and not influenced by other co-located applications (given there is no software bug in the application itself!).

However, sometimes, not only the correctness of the results is paramount. In many domains, e.g., in industrial automation, or autonomous driving, the correct result is not the only required output but also the time when the result has been produced.

The provision of real-time in container-based virtualization is a novel topic.

PREEMPT_RT patch

PREEMP_RT

Co-kernel

RTAI, Xenomai

Hierarchical Scheduling of container

Hierarchical scheduling of containers