4 ms·
I don't get what the sales pitch is here. It's "Real Time!" but... relative to what exactly. I really really doubt this is actually real time in the sense that
by bfrog 4y ago
I don't get what the sales pitch is here. It's "Real Time!" but... relative to what exactly.
I really really doubt this is actually real time in the sense that even remotely useful sort of worst case timing could be determined.
- qikInNdOutReply 4y agoRealtime is usefull for robotics, industrial automation and other time critical applications. https://en.wikipedia.org/wiki/Real-time_computing https://en.wikipedia.org/wiki/Real-time_computing Its important, as it allows to use run of the mill operation systems and programs, while still have reliable sheduling. If you make a car for example, that shares its ECU with various systems, some of the time critical, the whole affair needs to have the ability to schedule reliable, as to meed the dead lines. This is not doable with a run of the mill os. Thus there are special operating systems that provide realtime capability - e.g. https://roscon.ros.org/2015/presentations/RealtimeROS2.pdf https://roscon.ros.org/2015/presentations/RealtimeROS2.pdf https://en.wikipedia.org/wiki/ECos https://en.wikipedia.org/wiki/ECos but are usually not posix systems and generally incompabtile to them. Also normally they cost a arm and a leg to license. And now ubuntu can run on car-hardware with time critical software running on it.
- bfrog 4y agoOh I'm well aware of what is generally meant by real time. It's also abused as a marketing term to the point where it loses some meaning. What is the latency and timing jitter with ubuntu real time for a user land process? a kernel module? Are there any guarantees? On a cortex-m there are very clear ideas of what interrupt to isr latency is going to look like, and while not easy its possible to determine bounds of timing. On a linux x86 machine with god knows what running? Yeah...
- qikInNdOutReply 4y agoI guess there is a almighty scheduler in the kernel, which at any given moment is allowed to send your processes to sleep, pushing all the registers on some stack, plus execution pointer and do something else. Its certainly not by software yielding.
- yencabulator 4y ago> On a linux x86 machine with god knows what running? Yeah... Generally the way Linux RT projects solve that is by scheduling the CPU between the realtime processes and "the rest of Linux", where the rest of Linux acts as a single low-priority best-effort process. How much work that one part is doing within isn't really relevant. Typically, the realtime processes can only communicate with "the rest" by some very limited channel, e.g. message-passing, so they're never hampered by kernel locks or such.
- zokier 4y ago> The PREEMPT_RT patchset reduces the kernel latencies as required by the most exacting workloads, helping to ensure time-predictable task execution. Meeting stringent determinism requirements and upper-bounding execution time, Ubuntu with PREEMPT_RT makes the kernel more preemptive than mainline Linux. It isn't very unclear imho. And it's not like prempt_rt is some new thing, it is pretty well understood in the industry
- bfrog 4y ago"more preemptive" ok but how does this bound latencies and timing jitter from event to handling? E.g. I need to run a task at exactly every 100us, or within 10us of a gpio event, or ... You get the idea. Linux RT is, in my mind, abusing a term to market itself better. There's absolutely zero guarantees of not having your process indefinitely delayed. It's less likely, but zero guarantees and no possibility of doing any sort of worst case determination. That's not "Real Time" that's just better scheduling.
- PYTHONDJANGO 4y agoYou need to add some sources to your words so people can take you seriously. If you just write something it does not qualify as "truth" just because it is written by you, you know? They even invented a feature that can be used in every web browser today - it is called "URL" and is used to help you give users a quick method to read the "source of truth" that your words are based on. Just use it and your words will have more power - it is like magic! https://en.wikipedia.org/wiki/URL https://en.wikipedia.org/wiki/URL
- bfrog 4y agohttps://en.wikipedia.org/wiki/Real-time_computing#Criteria_for_real-time_computing https://en.wikipedia.org/wiki/Real-time_computing#Criteria_f... https://en.wikipedia.org/wiki/Scheduling_analysis_real-time_systems#Testing_and_verification https://en.wikipedia.org/wiki/Scheduling_analysis_real-time_...
- patrick451 4y ago
- yencabulator 4y agoLinux is generally good enough for soft real time, where you can miss a deadline but really would prefer not to. Think "noticeable glitch" not "explosion". Soft real time and low latency are what this is all about. As far as I've read, consumer variants of x86 CPUs themselves are not ever capable of hard real time, there's "management" stuff that'll just decide to pause the CPU sometimes.