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节点上离线表驱动的任务调度。受时隙转移算法启发,我们在非时间触发核心上运行低开销的时隙转移管理器来补充该新调度类:通过利用时间触发任务的闲置时间,避免为新增周期任务重建高开销调度表,从而为实时非周期任务提供执行时间保障。最后,我们在搭载Intel Xeon可扩展处理器的服务器级硬件上对实现方案进行了评估。