Synchronizing with Events to avoid Jitter
“Jitter” can be defined as the response time to successive instances of an event. Many embedded architectures can lead to variable amounts of jitter when responding to an event:
Every Novos Environment supports preemptively scheduled Foreground activities such as Event Action Routines (EARs) for specific class-related events. EARs respond to events in a timely, predictable manner with minimal Jitter.
For example, A Deferred Interrupt Handler might put data into an empty Queue, triggering a user-defined EAR associated with a Queue_Not_Empty event. As a Foreground entity, the EAR will gain CPU control in order to respond to the occurrence of the event in a predictable time.
The EAR is a user-defined program and can do whatever you determine it needs to do in response to the event, provided that it invokes no service that would cause it to block. It can processes the data in the Queue, cancel or start an alarm, post a signal to a semaphore, set or clear event flags or schedule a Background Task. Whatever it does, the EAR must complete its operations before any other entity below its Foreground priority or in the Background can get CPU control, thereby minimizing the Jitter in responding to the event.
This feature further enhances the innate real-time capabilities of Novos.