GPOS vs RTOS
GPOS vs RTOS - why not Linux/Windows?
Most operating systems (including the ones you’re using right now) are what are deemed to be ‘General Purpose’ operating systems. They are very good at executing a bunch of processes at once, but with no guarantee that high-priority threads will execute with preference to lower-priority threads. Latency is unchecked, and preemption is not permitted. When a thread is dispatched to a GPOS, we have no clue when it will run. These are all negatives in an embedded system-y environment, but on a computer, a GPOS makes up for it in terms of permitting maximum resource usage to be efficiently used and prioritizing average performance over task priority. Such is the case with Linux/Windows, and why you won’t find these being used in real-time applications*.
An RTOS, on the other hand, is used when predictability and deterministic timing is key. It permits critical threads to run within strict timing parameters. This becomes important when dealing with safety-critical applications, as even a few milliseconds of lost time can result in a system failing catastrophically. It includes special features to help critical tasks run correctly through mechanisms such as priority inheritance and permitting preemption.
*Real-time Linux operation is possible with the help of patching the kernel, but such patches are expensive. I have seen it grow in popularity in recent times, though.