By using C or assembly you can perform one task at a time using infinite loop (while(1){}). but by using RTOS you can perform many tasks concurrently by using scheduling algorithms (ex:round robin scheduling). not only that RTOS provide built in library (no need to write code for basic task like serial communication etc.,), it provide resource management (CPU time, memory, etc.,). And many other advantages. for example if you design an LED screen application, in which our micro controller is trying to refresh the screen at 24frames/sec and at the same time the micro controller should read the animation data received via serial communication and stored the data in external memory, in such cases we need RTOS.