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.
An information processing apparatus that concurrently executes a plurality of application programs including first and second application programs on an operating system. The information processing apparatus monitors a function call from the first application program to the operating system or a message being sent and received between the first application program and the operating system. Then, based on the monitoring result, the information processing apparatus modifies or inhibits a function call from the second application program to the operating system or a process for sending and receiving a message between the second application program and the operating system. In this way, embodiments of the present invention control operations of the application program without modifying the existing operating system.