A system, method and computer program product for efficient sharing of
memory between first and second applications running under first and
second operating systems on a shared hardware system. The hardware system
runs a hypervisor that supports concurrent execution of the first and
second operating systems, and further includes a region of shared memory
managed on behalf of the first and second applications. Techniques are
used to avoid preemption when the first application is accessing the
shared memory region. In this way, the second application will not be
unduly delayed when attempting to access the shared memory region due to
delays stemming from the first application's access of the shared memory
region. This is especially advantageous when the second application and
operating system are adapted for real-time processing. Additional
benefits can be obtained by taking steps to minimize memory access
faults.