Home > On-Demand Archives > Talks >

Challenges and techniques to use Linux in Real-Time Systems

Sergio Prado - Watch Now - Duration: 45:47

Challenges and techniques to use Linux in Real-Time Systems
Sergio Prado
Is the Linux kernel a good fit for real-time systems? Can we consider Linux a deterministic and fully-preemptible kernel so it can be used in real-time applications? If so, how is it possible, and what we should be aware of? Although Linux (with the PREEMPT_RT patch) is designed to be used on Real-Time Systems, it takes more than just a kernel to make sure you can meet all real-time requirements. This talk will cover the main aspects related to designing real-time applications on Linux-based operating systems, from configuring the kernel to writing real-time user space applications and measuring latencies.
italicssurround text with
boldsurround text with
**two asterisks**
or just a bare URL
surround text with
strikethroughsurround text with
~~two tilde characters~~
prefix with

Score: 2 | 1 month ago | 1 reply

Hello Sergio, thank you for the nice presentation. Excuse me If I'm making a wrong conception here but I'm wondering why the developers of the PREEMPT_RT patch decided to implement RR, FIFO, DEADLINE but no Rate-Monotonic (RM) Algorithm for real time scheduling as far as I understand RM guarantees determinism in RTOS while DEADLINE or Earliest Deadline First does not. Thanks for your answer!

Score: 0 | 1 month ago | 1 reply

I am glad you enjoyed the talk!

Yeah, RMS is one option for real-time scheduling, but I am not sure if it guarantees determinism.

Most algorithms depend on the developer to provide some input (priority, deadline, period, etc) so the algorithm can take decisions - at least until we decide to start adding AI to schedulers! :-)

Having said that, an RMS analysis can be applied to any real-time operating system (including Linux), independent of whether the kernel has an RMS scheduler or not. RMS just says you should define the priority of tasks based on their period (more frequent tasks get a higher priority), and you can do that upfront (at design time). And on Linux, you could use SCHED_FIFO or SCHED_RR to schedule those tasks.

Let me know if you have any further questions.

Score: 0 | 1 month ago | no reply

Thank you so much for your answer it clarifies my doubt!!!