LITMUS-RT

aboutdocumentationdownloadcontactpublicationscredits

LITMUSRTisa real-time extension of the Linux kernelwith a focus on multiprocessor real-time scheduling and synchronization. The Linux kernel is modified to support the sporadic task model, modular scheduler plugins, and reservation-based scheduling. Clustered, partitioned, and global schedulers are included, and semi-partitioned scheduling is supported as well.

LITMUSRThas been continuously maintained by Björn Brandenburg since 2006, and actively developed until 2017. As of 2018, there are currently no plans to rebase it to newer Linux kernel versions.

The primary purpose of the LITMUSRTproject is toprovide a useful experimental platform for applied real-time systems research. To that end, LITMUSRTprovides abstractions and interfaces within the kernel that simplify the prototyping of multiprocessor real-time scheduling and synchronization algorithms (compared to modifying a vanilla Linux kernel).

As a secondary goal, LITMUSRTserves as aproof of concept, showing how predictable multiprocessor schedulers and locking protocols can be implemented on current hardware. Finally, we hope that parts of LITMUSRTand the lessons learned may find value as blueprints, or as a source of inspiration, for other implementation efforts (both commercial and open source).

LITMUSRTis a research system that is stable and testedit works wellbut we do not have the resources to maintain a rigorous QA regime as it would be expected of a production-quality system suitable for safety- or mission-critical applications (just as it is the case with most research projects).

Furthermore, LITMUSRTs API is not stable, that is, interfaces and implementations may change without warning between releases. POSIX-compliance is not a goal; the LITMUSRT-API offers alternate system call interfaces.

While we aim to follow Linux-coding standards, LITMUSRTis not targeted at being merged into mainline Linux. Rather, we hope that some of the ideas protoyped in LITMUSRTmay eventually find adoption in Linux or other kernels.

The current version of LITMUSRTis2017.1and is based on Linux 4.9.30. It was released on May 26, 2017 and includes plugins for the following scheduling policies:

Partitioned EDF with synchronization support (PSN-EDF),

Global EDF with synchronization support (GSN-EDF),

PartitionedReservation-Based Scheduling(P-RES), and

, with either staggered or aligned quanta (PFAIR).

Please refer to thedownloadanddocumentationpages for more details about installing and working with LITMUSRT.

To get in contact with the LITMUSRTcommunity, please use themailing list.

The maintainer and main developer behind LITMUSRTisBjrn Brandenburgof theMax Planck Institute for Software Systems (MPI-SWS).

LITMUSRTwas originally launched at theUniversity of North Carolina at Chapel Hillunder the direction ofJames H. Andersonand has benefited fromcontributions by a number of researchersover the years.

When referencing LITMUSRT, please cite two publications:

paper: J. Calandrino, H. Leontyev, A. Block, U. Devi, and J. Anderson, LITMUS

: A Testbed for Empirically Comparing Real-Time Multiprocessor Schedulers , Proceedings of the 27th IEEE Real-Time Systems Symposium, pp. 111123, December 2006.

: B. Brandenburg, Scheduling and Locking in Multiprocessor Real-Time Operating Systems, PhD thesis, UNC Chapel Hill, 2011.

While [1] is the first publication on LITMUSRT, the first public release of LITMUSRTwas actually based on a reimplementation in 2007. All versions since 2007 are best described by the detailed description in [2].