Features – No Critical Regions in services

No Critical Regions in services

In the typical RTOS design, there are sequences of code that should only be executed when the system’s interrupts are disabled so that the integrity of the results in that code sequence can be guaranteed. This is what is called a “Critical Region”.

These critical regions appear throughout the code for many of the services in the typical RTOS. Sometimes, the duration of the critical region is only a few instructions. At other times they can be hundreds (or more) instructions long. The short ones are just a blip in the overall system loading but the longer ones have a serious effect on the responsiveness of the system.

If the system cannot respond to an interrupt when it occurs and within the time necessary for timely performance, a problem can occur.

In the Novos design, not one of the services in any of the environments has a critical region, requiring that it disable interrupts. The integrity of the service is therefore guaranteed. Outside of the service code, there are critical regions in the Novos design to protect the system’s structures.

But these critical regions are few and very short – the result is that a system built on a Novos environment will be highly responsive.