Arduino + FreeRTOS + C++ = Platform for Teaching Real-Time Software Design

This is very interesting. When I took a grad course in real-time programming we started by coding a simplified version of the project on bare hardware (a 486 if I recall), just to show how hard it is, then we wrote our own real time OS and developed a feature-rich version of the program. I think it was having a GUI and maintaining the real time hardware control that made the OS a blessing.

I remember struggling over coding the memory manager (which paid off when I interviewed with Microsoft's NT Kernel group and had to design a virtual memory manager on a white board in front of a panel of interviewers). Without the RTOS you simply wouldn't have a memory manager; it wouldn't be a matter of being more complex to not have the OS. I can't imagine why you'd even want to try to deal with paging within application code.

For the scope of what you can do with an arduino, I think simply using timer interrupts will let you do anything you could possibly want with real time, but I do understand that's not the point of your post.