260 likes | 815 Views
Real Time Linux. Steve Matovski CSE 666. Overview. Real Time Linux comes in two different kernels styles A Module layer can be installed between the Linux soft-time OS and the Linux real-time OS The other way is to change the kernel so operates in real-time
E N D
Real Time Linux Steve Matovski CSE 666
Overview • Real Time Linux comes in two different kernels styles • A Module layer can be installed between the Linux soft-time OS and the Linux real-time OS • The other way is to change the kernel so operates in real-time • The latest release of the Linux mainstream kernel will now include real-time support.
Real-Time Linux Installation • A currently installed Linux distribution is required to be modified by RT Linux module • The module requires the Linux kernel to be recompiled so that module layer can be installed • Once the kernel is recompile it is added to boot loader as a separate OS to boot • A fully configured OSs are available from commercial vendors
Real-Time Linux Architecture • The Linux soft-time OS runs as a process in real-time OS task scheduler list • The priority of Linux soft-time OS is the lowest of all processes in RT • All interrupts are rerouted to the real-time layer • I/O drivers and device drivers are routed to both the real-time and soft-time OS
Pros and Cons of RT Linux • Soft-time Linux kernel runs along side a real-time Linux so non-real-time software can run on a real-time system like Firefox • A low level task scheduler, control of hardware devices and static memory create a predicable environment • Dual kernel system keep soft-time processes separated from real-time processes allowing for faults in soft-time not to affect the real-time system • Real-time tasks have full access to hardware
Pros and Cons of RT Linux • RT Linux system still need time to boot. 30 second to 1 minute on average • The system’s RTOS size is still very large for an embedded system (minimum system size in MB) • Systems require large amounts of RAM and ROM to run processes • Part of OS is run as a task of real-time kernel so it is not a true real-time system. Soft-time processes have no guarantees • Communication between the real and soft OS is done through a FIFO queue
RT Linux VS QNX • RT Linux use only one scheduling algorithm at a time while QNX uses four different ones. EDF – RT Linux, FIFO and Round Robin – QNX • Processes in QNX run in a protected memory space • QNX handles Normal UNIX processes (weighted processes) and threads. RT Linux only handle threads • RT Linux has large set of user period levels • POSIX timers support in QNX
RT Linux VS LynxOS • Multiprocessor system support in RT Linux • RT Linux uses one short and periodic timers • LynxOS support a wide range of processors and microcontrollers • User task, system tasks and kernel tasks all run in protected memory spaces • Dynamic memory management at low level
RT Linux VS VxWorks • VxWorks thread communication is handle by messaging queues, binary/counting/multi-exclusion semaphores, and sockets • VxWorks supports a wide array of microcontroller • VxWorks has dynamic memory management • VxWorks supports FAT, NFS, raw, TrueFFS (Flash file system), ISO9660 filesystems • VxWorks has a graphical timer debugger called WindView
Scheduling on a RT Linux System • RT Linux handles basic Rate-Monotonic scheduling by default • Earliest First Deadline is possible by adding a module to the RT kernel • Scheduling of programs is done by the programmer using a set of API for setting process parameters • Scheduling and communication between real-time and soft-time is handle by FIFO schedule queue also soft-time task are not given any deadline guarantees • Making inter-processes task very difficult • Semaphore module can be added to help scheduling • Since RT Linux is an open source project there are many different scheduling module being built but RM and EDF are standard