Multi-processing is the ability to execute various processes (applications) simultaneously.
MIL applications are autonomous processes (or executables) designed to execute a complete operation or series of operations. Therefore, they can profit from multi-processing by executing independently, without interference from each other.
Not all systems support multi-processing. For example, a simple imaging board with only acquisition capability (such as Matrox CronosPlus) cannot ensure either the response time to a function or the independence of a process necessary for multi-processing. On such boards, two different processes cannot use the same system simultaneously. To use a non-multi-processing system within a multi-processing environment, all processes that need to communicate with the system must do so by sending their requests through a single dedicated process.
Systems that support multi-processing, such as Host or Matrox Helios, have on-board resources (such as, processors) that can be shared by different processes. However, multiple processes running at the same time have to share the available processing time, and cannot share data, since the memory used by one process is protected from all other processes.