52 driven scheduling. The time-driven scheduler is a mechanism to distribute the available CPU time among the partitions. However, there is one time partition that is active at all times. It runs the nonreal-time applications with lower priority whenever resources are available to ensure efficient use of the processor cores. Unikernels Unikernels enable programs to link all operating system services in a single address space, avoiding the need for the microprocessor to switch into a special kernel mode called a system service. In the unikernel architecture, based on a separation kernel, applications just link to the operating system features needed. Because unikernels are not contextswitching and subject to blocking by competing processes, their execution behaviour is much easier to observe and characterise. This reduces the burden of multi-core timing analysis, and makes the safety certification process more manageable. The intrinsic independence and timing properties of a unikernel simply make it a better unit of integration to compose systems where the integrity and predictability of a system is simpler to verify. A unikernel combined with a hypervisor enables system architects to compose systems with a higher level of fidelity. This allows designers to move applications between the RTOS and safety-critical environments. Unikernels work best for applications requiring speed, agility and a small attack surface for increased security and certifiability. They run pre-built applications using their own libraries, reducing the attack surface. This also supports containerised applications, which are moving increasingly from enterprise to embedded designs, driven largely by the need to support AI frameworks. Unikernels are also very well suited to mission-critical systems with mixed workloads that need the coexistence of RTOS, Linux and bare-metal guest operating systems. Small RTOSs At the other end of the scale are RTOSs for small UAVs. At its smallest, the latest RTOS to be developed for them is less than 1 kbyte of RAM for the code and 1 kbyte of flash memory for storage, enabling its use in some of the most memory-constrained devices. It still provides sub-microsecond context switching and API calls on most microcontrollers though, as well as determinism for real-time platforms. On typical 32-bit microcontrollers running at 80 MHz, most API calls and context switches take less than a microsecond. The processing for each API and context switch is completely predictable and not a function of how many threads are active. For example, the processing required to obtain a flag is the same whether two or 100 threads are active. The latest RTOS implementation includes pointer/data verification (PDV) technology, which provides visibility of the run-time function pointer, system December/January 2024 | Uncrewed Systems Technology Focus | Real-time operating systems The PX5 RTOS implementation (Courtesy of PX5) An automotive demonstrator of a Lidar 3D perception stack demo developed by Apex.Ai integrates the latest certifiable robot operating system (ROS 2) stack from the Apex.OS with PikeOS running on the Renesas V4H multi-core processor (Courtesy of Renesas Electronics) The MOSA.IC avionics RTOS is a key building block for a univernel (Courtesy of Lynx)
RkJQdWJsaXNoZXIy MjI2Mzk4