What is an RTOS? What hardware does it run on?

I think I'm getting the hang of programming microcontrollers now that I've looked into programming the PIC32 and Arduino at the "device-register" level. Some of the companies that I want to work for require working knowledge of RTOS, which is something I don't know about at all.

Base on cursory research, my impression of RTOS is that it's a piece of software designed to run on processors and memory that are beefier than those found on 'single-core' processors (like those found on a PIC or an Arduino). There are many RTOS but they essentially provide a software framework on which to build more complex, multithreaded applications (wherever such applications are required).

I once interviewed for an entry level position at Digi International. The team conducting the interview mentioned that they were working at the application layer, developing a program that ran on an RTOS on a internet wireless router. From this, I gathered that an RTOS isn't as "big" as the OS on a general purpose computer (nor does it use hardware that is as beefy as those on a general purpose computer).


I'd like clarification if my impression misrepresents what an RTOS actually is. Also, I was wondering if someone could explain to me the difference between an embedded system like one that uses an Arduino/PIC/Raspberry Pi and an embedded system which uses an RTOS.

RTOS stands for Real Time Operating System and I guess it is generally a sort of "small brother" of the broader type of OS that is represented by Linux, MAC, Windows and ChromeOS.

The problem with those big OS's is that they cannot be relied on for events that need very precise timing. I presume a RTOS manages to combine precise timing with some of the other high-level features that a big OS has and which make life easier for application programmers.

There are Threads on the Forum about RTOS's for the Arduino but personally I don't see the point of adding the overhead in such a small system.

(No doubt this will bring out all the experts)

...R

A real-time operating system (RTOS) is a specific type of operating system, which performs functions and calculations within a certain time. It prioritizes tasks and can suspend a benefit for another with a higher priority ensure that the processes the more important task first. But along with the benefits of using an RTOS, it also has several drawbacks, including the cost of the operating system and its complex implementation.
you can use: -mikro C OS FreeRTOS. -Salvo RTOS. -Embedded Linux (not easy to implement) -Nucleus-TinyOS-ECOS all the above except RTOS Embedded Linux, free RTOS, ECOS and Salvo is free.
For writing related help visit here.

my impression of RTOS is that it's a piece of software designed to run on processors and memory that are beefier than those found on 'single-core' processors

RTOS has nothing to do with "multi-core." Many single core CPUs can run an RTOS.
The key difference between an RTOS and some other multi-threading operating system is that an RTOS is supposed to be "deterministic", and be able to guarantee response to events within certain timeframes. Often, those time frames aren't particularly impressive compared to "best efforts" of a modern fast processor, but you might be surprised how difficult it can be to make those guarantees.
(For example, quite some time ago, an Internet Routing Vendor bragged that their new multi-core router could guarantee a packet would be handled within 1ms. At the time, we (another Internet Routing Company) were routing about 10000 packets/s, so I thought a 1ms brag was pretty amusing. Then one of our customers did their PhD thesis on the variance of packet delivery times. Sure, mostly we doing 100us or less, but every once in a while some packet would go through a much slower path, and end up taking much longer than 1ms. Oops. (or, perhaps "who cares." But it was an interesting result.)

Now, there are some particular issues that apply to RTOS but not to "normal" operating systems like Linux (notably, process priorities and interlocking.) But a lot of the time people in the microcontroller world say "RTOS" when they don't really need the "Real Time" part of things. What they expect you to know is some of the basics of multiprocessing or multithreading, beyond "I started up two applications at once."