Intertask communication includes a number of services traditionally found in more monolithic (e g: PC) environments. These are generally real-time compliant, to when the application itself needs to meet real-time constraints.
In general, only a subset of these are actually included in a given system. Services may include:
- Real-time clocks and timers
These have a fine granularity (corresponding to the application requirements), and may be in absolute or relative time, - Memory locking
Locking specific memory pages in place (e g: in the L2 Data Cache) ensures that access to the data will not require time-costly pagination (e g: retrieving the data from a disk, or slower memory). - Asynchronous I/O operations
For some types of operations, asynchronous I/O is needed to allow the process to continue execution, while the physical I/O takes place. - Synchronous I/O operations
For other types of operations, process executions needs to be sure that the I/O operation is actually complete before continuing execution. - Signals and/or messages
These allow simple, low-overhead communication and synchronization between processes - Mutual Exclusion (MutEx)
In many applications, some sections of code cannot run simultaneously - for example if they access the same resource. Mutual exclusion services allow one process to wait before entering the MutEx section of code, if another process is already within a section of code for the same MutEx.