Hi, basically a RTOS is a some sort of scheduler around a big bunch of device-drivers, memory handling and chip-init/boot-routines around 'em hopefully well designed to service/process events within the time required :-). If you have a battery powered design you will face additional challenges if you intend to use a RTOS.
Threading is just an abstraction layer to keep your code structured. Keep in mind that a poorly designed data-model always results in bad code. A GC assists you not to think about this issue and you are able to deliver some short-term results fast. If you like to do real parallel processing ensure the hardware fit's your needs (each core owns it's (independent) memory and a DPRAM around 'em.) If you look at the ADSP-SC589 for instance and like to do parallel processing you "just" need an event loop for each core which does the work with some (short,nested) interrupt handlers - no need for GC and threads. Nim gives you the power/freedom to do all that stuff outlined above and go further (RTOS-less runtime environment with Nim only for instance) There are also efforts from @mratsim targeting this audience: [https://forum.nim-lang.org/t/5083](https://forum.nim-lang.org/t/5083)
