Multi Sloth: An Efficient Multi-Core RTOS using Hardware-Based Scheduling - Müller, Rainer; Danner, Daniel; Schröder-Preikschat, Wolfgang; Lohmann, Daniel (Proceedings of the 26th Euromicro Conference on Real-Time Systems (ECRTS '14), 2014)
Multi-core operating systems inherently face the problem of concurrent access to internal kernel state held in shared memory. Previous work on the Sloth real-time kernel proposed to offload the scheduling decisions to the interrupt hardware, thus removing the need for a software scheduler, no state has to be managed in software. While our existing design covers single-core platforms only, we now present Multi Sloth, a multi-core AUTOSAR OS implementation. In this paper, we show that our hardware-centric approach enables us to easily make the transition to multi-core platforms without the need for explicitly synchronizing kernel data. Even in the case of cross-core interactions, Multi Sloth keeps the unique Sloth properties of strict priority obedience and complete prevention of rate-monotonic priority inversions. AUTOSAR OS mandates only unordered spin locks, which do not guarantee predictable timing. We show the advantages of the Multi Sloth design by additionally providing a wait-free and efficient implementation of the priority-aware Multiprocessor Priority Ceiling Protocol (MPCP). On our reference platform, we achieve overheads as low as 1.1s for acquiring a globally shared resource using the MPCP and round-trip times of 1.4s for cross-core task activations.
UnivIS-Import:2015-04-16:Pub.2014.tech.IMMD.IMMD4.aneffi
Keywords: Sloth; Operating Systems; Embedded Systems; Real-Time Systems; Multi-Core; MPCP; AUTOSAR; Infineon TriCore; Infineon AURIX