There is increasing interest in using Linux in the real-time domain due to the emergence of cloud and edge computing, the need to decrease costs, and the growing number of complex functional and non-functional requirements of real-time applications. Linux presents a valuable opportunity as it has rich hardware support, an open-source development model, a well-established programming environment, and avoids vendor lock-in. Although Linux was initially developed as a general-purpose operating system, some real-time capabilities have been added to the kernel over many years to increase its predictability and reduce its scheduling latency. Unfortunately, Linux currently has no support for time-triggered (TT) scheduling, which is widely used in the safety-critical domain for its determinism, low run-time scheduling latency, and strong isolation properties. We present an enhancement of the Linux scheduler as a new low-overhead TT scheduling class to support offline table-driven scheduling of tasks on multicore Linux nodes. Inspired by the Slot shifting algorithm, we complement the new scheduling class with a low overhead slot shifting manager running on a non-time-triggered core to provide guaranteed execution time to real-time aperiodic tasks by using the slack of the time-triggered tasks and avoiding high-overhead table regeneration for adding new periodic tasks. Furthermore, we evaluate our implementation on server-grade hardware with Intel Xeon Scalable Processor.
翻译:随着云计算和边缘计算的兴起、降低成本的需求以及实时应用日益复杂的功能性与非功能性要求,人们对在实时领域中使用 Linux 的兴趣日益浓厚。Linux 提供了宝贵的机会,因为它拥有丰富的硬件支持、开源开发模式、成熟的编程环境,并能避免供应商锁定。尽管 Linux 最初是作为通用操作系统开发的,但多年来其内核中已添加了一些实时能力,以提高其可预测性并降低调度延迟。遗憾的是,Linux 目前不支持时间触发(TT)调度,而时间触发调度因其确定性、低运行时调度延迟和强隔离特性,在安全关键领域得到广泛应用。我们提出了一种对 Linux 调度器的增强方案,作为一种新的低开销 TT 调度类,以支持在多核 Linux 节点上对任务进行离线表驱动调度。受 Slot shifting 算法的启发,我们为新的调度类配备了一个低开销的时隙偏移管理器,该管理器运行在非时间触发核心上,通过利用时间触发任务的空闲时间,为实时非周期任务提供有保证的执行时间,并避免因添加新周期任务而进行高开销的表重构。此外,我们在配备 Intel Xeon 可扩展处理器的服务器级硬件上评估了我们的实现方案。