• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Is Android an RTOS?

Lvenok

Lurker
Please give me detailed answer for that question. I can't find an information, that confirms or refuses that statement.

P.S.: I'm sorry, if my message contains mistakes. I know English a little bit. :)
RTOS - Real Time Operating System
 
No, Android is not a RTOS, because Android isn't deterministic. It doesn't try to be. Running apps have no guarantees about anything. If you need a true RTOS, Android is NOT the right OS to use.

Note that "Realtime" does NOT mean "responsive", as in, "The phone had a fluid and responsive UI". "Realtime" simply means that you, the programmer, can know in advance *exactly* how often your code will run, how long it will take to run, and the conditions under which it will run. You might have to go out of your way to guarantee those specific conditions, but you CAN if you MUST. Under Android, there are NO guarantees, except that nothing is guaranteed.

I cringe whenever I see something like "Realtime Linux" in print, because getting anything that resembles Linux to be truly "realtime" requires replacing so much of the kernel, by the time you're done you're left with little more than "GPL'ed open-source unix-like realtime operating system loosely inspired by the work of Linus Torvalds", in much the same way that Microsoft has realtime variants of Windows CE that share the first 7 letters of their name with a popular desktop operating system published by the same company.
 
A popular RTOS is VxWorks. Look it up and you will find its RTOS features that a 'normal' OS such as Linux kernel does not have.

Key feature of an RTOS is that an application's interrupt priority can be as high as any of the kernel processes, thus guarantees that the application's request can be processed in an 'immediate' fashion, thus the 'real time', i.e. minimal latency.

This is all good right? Sure but it also makes for hellish debugging of many application processes over-stepping one another's memory allocations, leading to harder to debug intermittent crashes of an application.
 
Back
Top Bottom