To view parent comment, click here.
To read all comments associated with this story, please click here.
Regardless of the document's use (or misuse) of the term "hard realtime", it's a well understood fact that hard realtime means guaranteed deadlines; unless the Linux kernel provides microsecond accuracy, it's "soft realtime". This isn't a fuzzy definition -- or a minor distinction -- hard realtime guarantees are required particularly for systems where subtle variations in performance or latency can have tragic consequences (eg. flight control systems, etc).
You contradict yourself, here. If hard real time means guaranteed deadlines (and it does) what do "microseconds" have to do with it? The guarantee could be that it will definitely do something within one millisecond, or one year, but if it can be even one Planck Time over that, it fails the test. The definition of hard real time is, in fact, so pedantic, that I think I can say with reasonable certainty, that nobody, except maybe God, legitimately needs it.
In short, I think there's a Universal market of maybe 1 real time computer. And you can quote me on that. ;-)
Edited 2008-04-19 19:52 UTC
I would bet any amount of money the Ubuntu page is wrong.
"Hard real time" isn't a vague descriptive phrase. It's an actual concept used to describe ultra-strict time constraints where something not happening exactly when it needs to has severe consequences like an explosion or people dying. It's used in stuff like nuclear power plants, avionics, etc.
Soft real time systems are those that have strict timing requirements, but missing a deadline isn't too big a deal. Playing an MP3, for example, requires refilling the audio buffer before the old one is consumed, but it's not the end of the world if it doesn't happen.
It takes a whole lot of work to make a large hard real time system, and it just doesn't make sense to put in the effort for a desktop system.
'hard' real time is not so well defined as you might imagine.
A truly deterministic implementation cannot have such niceties as processor cache, interrupts or file i/o as you cannot accurately predict their latencies.
A practical 'hard' real time system still has to allow for missed deadlines, or have some kind of priority assignment for real time threads. This opens up the possibility of priority inversion. (see Mars Rover Pathfinder.)
So there are always compromises and each implementation is specific. The Linux RT patches provide one implementation, with all the problems associated with running on commodity hardware, networking, file io etc. Whether it fits your needs is another matter.







Member since:
2005-07-06
Some of the documents I refer specifically use the word hard real time. As an example
https://wiki.ubuntu.com/RealTime/Feisty
Red Hat MRG product has specific guarantees below certain milli seconds for specific transactions. Refer to their whitepapers for more details.
I guess your definition of hard real time is different then which is ok as long as you clearly specify what your definition is or provide some reference as to to what you believe is a commonly acceptable definition.
Within specific industries, they start out with a definition or avoid the term and just specific the guarantees just to avoid this problem. That for example guarantees the max time slice among other things.
Edited 2008-04-19 00:29 UTC