# Development of a Novel Open Control System Implementation Method under Industrial IoT
## 2 Related Work
### Virtualization of Control Task  
Regarding virtualization technology, the container attracts more attention than traditional hypervisor-based virtualization in the cloud computing era, thanks to its smaller image size and less boot up time. As Figure 2(a) shows, hypervisor-based virtualization depends on a hypervisor to abstract hardware resources and monitor virtual machines. A fully functional and bulky guest operating system is needed to run applications. In contrast, as Figure 2(b) presents, container-based virtualization packages an application with dependencies (e.g., bins, libs, configuration files, and even a base operating system) in a container. A container is a process running on the host operating system that shares the host operating system kernel, while its namespace and control groups are assigned by a container engine to isolate it from others. [PERSON] et al. virtualize the control domain based on Xen, a widely used hypervisor [17]. Three guest operating systems are managed by Xen: a real-time operating system, Windows, and Linux. Each guest operating system is assigned at least one independent core. Real-time and non-real-time control tasks run on the real-time operating system and Windows, respectively, and interact via Linux. To be specific, on the side of Windows,  
Figure 3: Traditional hypervisor- and container-based virtualization. the Google remote procedure call (gRPC) and protocol buffer cross-platform open-source technologies are used, while on the side of the real-time operating system, remapping to the shared memory and the interrupting service-routine (ISR)-bound reception event communication mechanism are used. It can be seen that this control domain virtualization method does not involve modifying the hypervisor itself. In contrast, RT-Xen is a hierarchical real-time scheduling framework based on Xen [18; 19]. The hypervisor layer takes responsibility for instantiating a suite of fixed-priority scheduling algorithms to schedule guest operating systems, while the guest operating system relies on a real-time operating system to schedule tasks. In hypervisor-based control applications, however, the time determinacy performance is heavily influenced by the number of tasks in each guest operating system since the hypervisor fails to allocate hardware resources dynamically to adapt to the guest operating system's demands. Along with the widespread application of containers in IT infrastructures, many studies try to apply containers in industrial automation [20; 21]. Given that a container is actually a running process of the host operating system, it is common to run containerized control applications on a real-time operating system to satisfy the time determinacy. The performance of containerized control applications is mostly estimated by the cyclic behavioral test and the virtual networking behavioral test. The former evaluates the ability to execute application logic at pre-defined intervals and measures accuracy and jitter, while the latter evaluates the ability to communicate between co-located containers in a time-bounded manner. The results indicate that the containerized execution suffers a negligible and constant overhead. However, current studies on containerized control applications have two main drawbacks: first is the ignorance of the control domain's complexity, and second is the ignorance of the infrastructure's heterogeneity. To be specific, control applications used in current studies are often simple ones for which the whole application is containerized in one container. However, modern control applications are more and more complex and comprise multiple tasks, even distributed control tasks. Among them, not all control tasks have a high time determinacy property, and moreover, the intimacy between control tasks is diverse. Such a complex control application prefers to be containerized into multiple containers according to the control domain's formal description rather than a single one.