Fundamentals of Real-time Processing
Real-time systems require simplifications to ensure that the agreed-upon reaction time is reached under all scenarios. This frequently involves communication between independent functional units that communicate via a shared memory space.
Xentara distinguishes between real-time and non-real-time jobs in order to meet both data security and reaction time needs.
Classic synchronization systems, such as semaphores, cannot be employed in this situation.
Synchronizing Real-Time Tasks
Xentara manages real-time jobs that do not employ inherent synchronization mechanisms. Instead, schedulers within the timing model govern task timing, guaranteeing that a task has unrestricted access to global memory resources while being executed.
This means that the user bears some responsibility for accurately configuring the timing model. In exchange, the job is promised the quickest access to resources at the specified times.
Mutual access to jobs that share data points in shared memory is handled either sequentially or with explicit read/write permissions.
This is easier in the case of IO Skills, which often have a direct 1:1 link between the I/O channel and a data point. This configuration has the potential to significantly reduce total process cycle time by parallelizing tasks.
Synchronization of non-real-time tasks.
For applications with no real-time requirements, Xentara employs a separate technique. In this situation, write access to global data points or objects is handled via a shadow mechanism.
Access to data points is slightly slower, but it is both atomic and secure.