During the last decade, there has been a considerable interest in using Linux in real-time systems, especially for industrial control. The simple and elegant design of Linux guarantees reliability and very good performance, while its open-source license allows to modify and change the source code according to the user needs. However, Linux has been designed to be a general-purpose operating system. Therefore, it presents some issues like unpredictable latencies and limited support for real-time scheduling. In this paper, we present our experience in the design and implementation of the real-time scheduler that has been recently included in the Linux kernel. The scheduler is based on the Resource Reservation paradigm, which allows to enforce temporal isolation between the running tasks. We describe the genesis of the project, the challenges we have encountered, the implementation details and the API offered to the programmers. Then, we show the experimental results measured on a real hardware.has concerned the optimization of the average throughput (i.e. the amount of 'useful work' performed by the system in the unit of time) instead of meeting the timing constraints of each running application. As a result, the standard Linux kernel does not provide good real-time performance (i.e. low kernel latencies) or other features needed for supporting real-time applications (for example, advanced scheduling / resource management algorithms).In this paper, we describe a real-time scheduler for the CPU that we have recently included in Linux. The paper is organized as follows. In Section 2, we present the previous work about real-time on Linux. In Section 3, we describe the scheduling algorithm, the implementation details as well as the API offered to the programmer. Then, in Section 4, we provide some experimental results on a real hardware. Finally, in Section 5, we state our conclusions and we provide information about the future work. RELATED WORKIn the last decade, several (sometimes orthogonal) mechanisms have been proposed to add real-time capabilities to the Linux kernel. These mechanisms can be grouped in the following classes [1].Hardware Abstraction Layers (HALs). The first technique consists on reducing the kernel latency through a small abstraction layer (also called hypervisor), which virtualizes the hardware exposed to the Linux kernel [2]. This layer takes full control of the hardware resources (mainly, interrupts and system timers) and directly handles the real-time tasks at a higher priority than Linux. The Linux kernel is thus scheduled by the HAL as a low-priority task. The real-time applications cannot use functionalities provided by the Linux kernel, unless by temporarily loosing their real-time guarantees.This approach, originally introduced by Finite State Machine Labs with real-time Linux (RTLinux) [3], then acquired by Wind River [4], is now provided by two community-driven projects. The Real-Time Application Interface (RTAI) project [5], started in 1997, has developed the Adeos kernel [6] as a rep...
The Constant Bandwidth Server (CBS) is an algorithm for providing temporal protection and real-time guarantees to real-time sporadic tasks. Recently, an implementation of this algorithm called SCHED_DEADLINE has been included in the Linux kernel. Therefore, the CBS algorithm is now used to serve more generic tasks than do not obey to the classical sporadic task model. One important type of tasks which was not considered by the original CBS algorithm is the so called "self-suspending task model", where a task instance can suspend itself waiting for an external event. Even if the original algorithm is adapted so that the temporal protection property continues to hold, it is difficult for developers to provide guarantees and to select the most appropriate server parameters for such tasks. This paper investigates the problem of using the CBS algorithm for serving self-suspending tasks, by analysing it from a theoretical point of view and showing how to select the server parameters (budget and periods) for self-suspending tasks. Finally, the effectiveness of these proposals is shown through both simulations and real experiments on Linux / SCHED_DEADLINE.
The recent changes made in the Linux kernel aimed at achieving better energy efficiency through a tighter integration between the CPU scheduler and the frequency-scaling subsystem. However, in the original implementation, the frequency scaling mechanism was used only when there were no realtime tasks in execution. This paper shows how the deadline scheduler and the cpufreq subsystem have been extended to relax this constraint and implement an energy-aware realtime scheduling algorithm. In particular, we describe the design issues encountered when implementing the GRUB-PA algorithm on a real operating system like Linux. A set of experimental results on a multi-core ARM platform validate the effectiveness of the proposed implementation, which has been recently merged into the official Linux kernel.
Abstract-In high-performance computing systems, efficient energy management is a key feature for keeping energy bills low and avoiding thermal dissipation problems, as well as for controlling the application performance. This paper considers the problem of partitioning and scheduling a set of real-time tasks on a realistic hardware platform consisting of a number of homogeneous processors. Several well-known heuristics are compared to identify the approach that better reduces the overall energy consumption of the entire system. Despite the actual state of art, the approach which minimizes the number of active cores is the most energy efficient.
Operating systems code is often developed according to principles like simplicity, low overhead, and low memory footprint. Schedulers are no exceptions. A scheduler is usually developed with flexibility in mind, and this restricts the ability to provide real-time guarantees. Moreover, even when schedulers can provide realtime guarantees, it is unlikely that these guarantees are properly quantified using theoretical analysis that carries on to the implementation. To be able to analyze the guarantees offered by operating systems' schedulers, we developed a publicly available tool that analyzes timing properties extracted from the execution of a set of threads and computes the lower and upper bounds to the supply function offered by the execution platform, together with information about migrations and statistics on execution times. rt-muse evaluates the impact of many application and platform characteristics including the scheduling algorithm, the amount of available resources, the usage of shared resources, and the memory access overhead. Using rt-muse, we show the impact of Linux scheduling classes, shared data and application parallelism, on the delivered computing capacity. The tool provides useful insights on the runtime behavior of the applications and scheduler. In the reported experiments, rt-muse detected some issues arising with the real-time
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.