Hi all,

is there anyone could explain in an easy way what's a real time OS ?


Posted on 2003-08-08 14:04:27 by Bit7
A real time OS has deadlines to respond to any input and must respond in a predictable pattern. For example if you have XP, if there is a large disk access, it may ignore an input until the task is complete then process it. This is unacceptable in a factory where the CNC machines cannot wait for the OS to respond, they have to communicate in real-time, a missed communication can cost thousands of dollars. I think that some flavors of Linux can be considered real time OS's I am fairly sure that no current Windows version is.
Posted on 2003-08-08 14:47:47 by donkey
Something Like my OS == SOL OS

Realtime means that the OS is designed in such a way that it is certain to respond in the shortest ammount of time to an external or internal event.

It also means that it will not occassionaly "slow down" for a while. Imagine it will be occasionaly unresponsive (like Windows or Linus do sometimes) exactly when an operator needs to lower the protection bars in a nuclear reactor or it has to insert a life saving drug in the blood of an pacient under observation... a nuclear explosion and/or a patient might die because "occasionaly" the OS was swapping pages of ram with the HDD :D

Usually an realtime OS as a Frames per Seccond like a game ... in order to be Realtime OS it HAS to respong and or check for events at least 5 to 10 times per seccond usually 100 times per seccond or even higher might be also used.

A realtime OS HAS to be constantly updating the screen N times per second -- so operators will notice any changes in instrumentation read out.

And under NO circumstances no matter what (HDD activity , network connection, USB device insertion etc) it is NOT allowed to respond/update screen slower.

You might think it is easy to do such things but is NOT

Advanced fast IRQ and I/O handling must be done and a different path than the ones used by Window and most Unixes must be choosen.

Such realtime OS are using callbacks or co-routines and finite state machines instead of queued messages.

Also preemptive multitasking hurts realtime OS a lot :P because a costly task/context switch might occur at the "wrong" moment, that is why cooperative or a more tight controlled task switch is used (akka only when allowed)

Realtime OS are used for time/life critical devices as in medicine, spaceships, nuclear plants, robotic production lines and automated machines in factorys.

Anywhere where loosing a miliseccond might result in loss of lifes or in loos of money...
Posted on 2003-08-08 14:49:55 by BogdanOntanu
neither NT nor Linux are RTOSes. They "can" be used for it though, but it's discouraged (and I wouldn't trust either in a lifecritical environment). Well, perhaps embedded NT handles it, but I don't have experience with that.

As for a RTOS, have a look at www.qnx.com .

"Also preemptive multitasking hurts realtime OS a lot" - still haven't seen any proof of that claim. I'd say a single task forgetting to release its timeslice would hurt a hell of a lot more than any insignifican task switching overhead. Of course a thing like this is not acceptable in a real-time situation, but software is complex...
Posted on 2003-08-08 16:53:51 by f0dder

many thanks, now i've the ideas more clean about it.. I was just curios since the defininion o RealTimeOS seems not well defined.. At mu new job we write apps for Window$, Linux and OS9. OS9 is the RealTime One :) but now we move with all our stuff to linux since motorola based hardware is no more copetitive as price and performance.

Posted on 2003-08-09 13:26:09 by Bit7

but now we move with all our stuff to linux since motorola based hardware is no more copetitive as price and performance.


How about the G5? but then again, it has Darwin under the hood, which i assume should be able to run your linux progs :)
Posted on 2003-08-09 15:00:38 by jademtech