Find the answer to your Linux question:
Results 1 to 4 of 4
Hello, please advice. How to verify that the system/kernel is realtime (RTOS)? I modified the standard Debian, so to have real-time features (I used Xenomai Framework). I tried Cyclictest, but ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Feb 2014
    Posts
    2

    Methods for verifying the RTOS


    Hello,

    please advice. How to verify that the system/kernel is realtime (RTOS)? I modified the standard Debian, so to have real-time features (I used Xenomai Framework).
    I tried Cyclictest, but - what is the optimal latency (for RTOS)?

    Thank you for your help!

  2. #2
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, in Chicago, or in a galaxy far, far away.
    Posts
    11,601
    Latency has little to do with "real time". It is all about keeping schedules. What do you know about rate-monotonic analysis? That's how you can compute how the system needs to perform in order to meet critical scheduling deadlines. Just installing the RTOS extensions for Linux is not suitable. If you want more information about Posix RT systems, go visit QNX operating systems, development tools, and professional services for connected embedded systems. Yes, Linux CAN be used for hard real time systems, but it is REALLY difficult, and usually requires more than just installing the RT extensions. It also requires serious kernel modifications. The RT extensions provide what I call "soft" real time capabilities - not suitable for fly-by-wire aircraft avionics or nuclear power plant safety and control systems, but usually good enough for systems such as warehouse distribution (conveyor) systems, some manufacturing systems, etc. IE, if you miss a deadline by a few milliseconds, the world won't come to an end, or the plane crash. I use RT-enabled Linux systems for such soft RT environments, but I ONLY use provably hard RT systems for safety-critical systems.

    In case you are interested, I have been developing hard real time systems for about 30 years. Software I worked on has been used in the space shuttle program, the F111 stealth fighter avionics manufacturing systems, and the US Navy's RAMP (Rapid Acquisition of Manufactured Parts) project, plus many manufacturing lines in the US for automotive manufacturers, as well as semiconductor manufacturing systems world-wide (if it has a chip in it, I probably wrote the software that built the chip).
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

  3. #3
    Just Joined!
    Join Date
    Feb 2014
    Posts
    2
    Ok, it is interesting. I would like to dedicate the design software for RTOS in the future (Sorry for my bad English, I'm not a native speaker).

    Right now, I'm working on an experiment with Raspberry Pi microcomputer. I want put RTOS to this microcomputer. I have used the Machinoid project (machinoid.com) - Debian for Raspberry Pi modified thanks to Xenomai Framework. Now - How do I verify that my system is really RTOS?

    "What do you know about rate-monotonic analysis? That's how you can compute how the system needs to perform in order to meet critical scheduling deadlines. "
    - I know scheduling algorithms Rate Monotonic Scheduling and Earlies Deadline First, how will it help me?

    Thank you!

  4. #4
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, in Chicago, or in a galaxy far, far away.
    Posts
    11,601
    What real-time really means is that a deadline is guaranteed to be met. Overloading a real-time system will degrade that, which is where RMA comes into effect. You determine the worst case deadline requirements for all critical tasks in the system, and then determine if they can indeed be met. These are usually interrupt-driven events. IE, if a switch is activated, what is the WORST case time that the event can be detected and processed, and can it be handled with other critical events occurring, and not interfere with their deadline requirements? So, what is the worst-case interrupt response time for RT Linux on a PI? Can interrupts be nested? When in uninterruptible code, what is the longest time that you will be in that code before re-enabling interrupts, and then is it possible to "lose" an interrupt because of interrupt masking during that code? If so, what will it mean if that happens?

    There are a zillion other questions like this that must be answered to determine if a particular hardware/software system is suitable to your requirements. As my signature says, "Sometimes, real fast is almost as good as real time."...

    In any case, hard real-time systems is not a subject for just anyone. Hard core analytical skills is needed, and a LOT of experience. That said, my grandson uses Linux and PI / Arduino gear to control drone aircraft that have the ability to navigate and land autonomously. He will use multiple systems to handle specific sets of controls, and another to co-ordinate them. He can throw a quad-coptor (of his own design and manufacture) out of a car window at 40mph, and it will follow a pre-programmed set of way points using GPS, and then return and land at a pre-assigned site, taking photos along the way to show that it indeed did hit all of the way points. He knows that his gear is not hard real-time, but it is close enough for his requirements. I don't think he has lost any aircraft (either fixed-wing or rotary) yet...

    So, good luck, and have a lot of fun!
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •