80 likes | 232 Views
RT-Linux:. Ross Johnston Jonathan Blackburn Jason Siciliano. Introduction. RT-Linux: Past and Present What is real-time, and how does RT-Linux handle it? How is RT-Linux different from other real-time systems? Scheduling Algorithms (FIFO). The Basics of RT-Linux.
E N D
RT-Linux: Ross Johnston Jonathan Blackburn Jason Siciliano
Introduction • RT-Linux: Past and Present • What is real-time, and how does RT-Linux handle it? • How is RT-Linux different from other real-time systems? • Scheduling Algorithms (FIFO)
The Basics of RT-Linux • Victor Yodaiken and Michael Barabanov created RT-Linux at the Institute for Mining and Technology of New Mexico in 1997 • RT-Linux is maintained by FSMLabs, Inc. • Allows the Linux kernel to run off of the RT-Linux kernel, sharing the processor
What is a “Real-Time” System? • “Real-Time” constitutes process scheduling meant to meet a deadline; little to no event latency allowed • There are “hard” real-time systems (failure to meet deadlines results in serious consequences) and “soft” real-time systems (failure only results in quality degradation)
RT-Linux handling Real-Time • Interrupts are handled based on RT-Linux options – either by enabling or disabling interrupts • When enabled, the main Linux kernel handles interrupts normally • When disabled, pending interrupts are held until interrupts are re-enabled • This is known as Interrupt Emulation
RT-Linux: How is it different? • RT-Linux functions basically with a “dual kernel”; it builds a small kernel over the processor, complete with its own scheduler • The Linux Kernel still functions, handling all non-RTLinux processes • Most other real-time systems, instead, modify the kernel in order to guarantee predictability
RT-Linux & FIFO • RT-Linux uses First In First Out (FIFO) queues for inter-process communication • FIFO queues are similar in design to pipes in Unix • RT-Linux processes view the FIFOs as simply integers, while Linux processes see them as character devices
Scheduling in RT-Linux • Users can implement their own schedulers using loadable kernel modules • Comes with two schedulers – Priority-based Preemptive & Earliest Deadline First