Classical programs run a loop with prioritized ISRs. How do RTOS do this differently of better?
By not treating all Interrupt Service Routines (ISR's) as the highest priority.
The kernel of an RTOS is preemptible where as a GPOS kernel is not preemptible. This is a major issue when it comes to serving high priority process/threads first. If kernel is not preemptible, then a request/call from kernel will override all other process and threads. For example:- a request from a driver or some other system service comes in, it is treated as a kernel call which will be served immediately overriding all other process and threads. In an RTOS the kernel is kept very simple and only very important service requests are kept within the kernel call. All other service requests are treated as external processes and threads. All such service requests from kernel are associated with a bounded latency in an RTOS. This ensures highly predictable and quick response from an RTOS.
People will make a fuss over things being "time critical" but there's really no such thing as anything that isn't time critical. What a Real Time Operating System (RTOS) really does is eliminate some of the random nature of scheduling in a general purpose operating system (GPOS).