Да тебе и не понять, потому что ты не понимаешь как они работают.
RTOS нужны для полезной утилизации процессорного время на реальные
задачи. Без превращения кода в мелко нарезанную лапшу с тучей ифов
и переходов. RTOS сам нарезает исполнение на отрезки, выделяя
процессорное время тем задачам, которым оно нужно. Сама задача полностью линейна и исполняется от одного ожидания события до другого. При этом её в любой момент может прервать более срочная задача, но на самом коде таска это никак не отражается. Фокусы-манипуляции с переключениями стеков происходят прозрачно для кода, так же как прерывания. Фактически более приоритетные задачи являются прерываниями для менее приоритетных.
И всегда можно войти в критическую секцию и выполнить некий код не прерываясь.
Если нужны частые переключения на скромном мцу, то нужно выбирать более легковесные ОСи с быстрыми планировщиками.
В остальных случаях годится любая.
И как понимаешь, MMU здесь не нужно от слова совсем. Оно ничего не даёт в плане реалтаймовости. Разве что в отладке дырявого говнокода может быть полезна.