The basic concept of an RTOS is scheduling tasks to always occur within some fixed-length block of time (a bit like a generalized callback function). If you have a cycle time of 10ms and you have three tasks that take 5ms, 4ms, and 2ms, respectively, then you can only actually guarantee that two tasks will be performed in each 10ms cycle. A hard-RTOS would usually just reject the task with the lowest priority, while a soft-RTOS might attempt to complete the additional tasks in the leftover time of every cycle (high priority tasks get completed once every cycle, while low priority tasks get completed once every however many cycles required) or increase the cycle time length. You get into all sorts of complicated problems when designing the scheduling system (a bit like switching between threads) and dealing with task errors and/or time overruns.
Hopefully I will be completing a few house projects over the next couple days, but there are so many they make me want to curl into a little ball and/or burn the place to the ground. If I could afford to replace it outright, I would strip it of just about everything reusable/recyclable before offering it to the local fire department for a training session.