LITMUSRT: Linux Testbed for Multiprocessor Scheduling in Real-Time Systems
What is LITMUSRT?
LITMUSRT is a real-time extension of the Linux kernel with a focus on multiprocessor real-time scheduling and synchronization that has been continuously maintained and updated since 2006. In the past decade, LITMUSRT has been employed by several groups in North and South America, Europe, and Asia, and to date has played a part in over 45 conference and workshop papers and eight MSc and PhD theses.
Tutorial overview
This tutorial is aimed at researchers and practitioners interested in using LITMUSRT as a development and evaluation platform. It will get participants up-to-speed on how to use a LITMUSRT-equipped Linux system as the foundation for the development and assessment of real-time workloads.
One area of emphasis will be the use of LITMUSRT’s built-in tracing capabilities to record and evaluate scheduling traces (e.g., to observe actual execution costs, deadline miss ratios, tardiness, preemption and migration counts, etc.), and to measure system overheads (e.g., scheduling and context switch overheads, release latency, etc.).
The second focus area will be the development of custom real-time tasks that link against liblitmus
, LITMUSRT’s user-space library.
Manual: A Guide to LITMUSRT
The material covered in the tutorial (how to select scheduling polices, how to launch tasks, how to create new tasks, how to trace, etc.) is also made available as a manual for later reference.
The manual is available online in both HTML and PDF format.
- A guide to LITMUSRT (HTML), best for online reading.
- A guide to LITMUSRT (PDF) best for offline reading.
Reading the manual prior to the tutorial is not required, but recommended.
Prerequisites
- Basic familiarity with the Linux shell.
- A working knowledge of software development with C in a Linux environment (and related command-line tools such as
make
). - A basic understanding of real-time scheduling.
- A laptop (either Windows, Mac, or Linux) with at least 10GiB of free disk space and sufficient RAM to comfortably run a large VM.
- Completion of the setup instructions prior to the event (a large download is required, see below).
Download and installation Instructions
We have built a pre-packaged VirtualBox image running a LITMUSRT-based Debian distribution. The image comes pre-installed with all required libraries and tools.
First, download and install the latest version of VirtualBox:
(Note: we recommend using the pre-built binaries.)
Second, download and unpack the LITMUSRT Debian Image for VirtualBox (2.87GiB):
Third, create a new guest VM based on the downloaded image. The following steps describe how to create a new guest in VirtualBox using the provided image:
- Start VirtualBox and click New in the top-left corner of the window.
- Give a name to the LITMUSRT guest (e.g., “LITMUS-RT”). Select the Type as Linux and the Version as Debian.
- Select the memory size of guest. A memory size of 1024 to 2048 MiB will be sufficient for the purposes of this tutorial.
- Select Use an existing virtual hard drive file and locate the provided VirtualBox image on your disk. (See download link above for the image.)
- Once complete, select the just-created virtual machine on left navigation panel and click Start in the top menu.
By default, the VM boots into LITMUSRT.
Login information
You may log in with the following credentials:
- regular user account:
- User name:
litmus
- Password:
litmus
- User name:
- super user account:
- User name:
root
- Password:
litmus
- User name:
All LITMUSRT-related files (including source code) are installed under the /opt directory.