Mixed Shared Non-Shared Memory Transport for Virtual Machines
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized computing systems, shared memory that is writable by multiple virtual machines can be overwritten, and hypervisors require additional memory scans as the number of guests increases, leading to inefficiencies and increased memory usage.
Innovation Solution
Implementing a mixed shared/non-shared memory management system where a hypervisor provides a shared memory area for communication between virtual processors and stores information in non-shared memory to preserve data integrity and reduce memory scans, allowing efficient communication and scalability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If shared memory is used for communication between multiple virtual processors, then communication efficiency is improved, but data integrity deteriorates due to overwriting risks
Solution Approach 1:
The patent divides memory into separate shared and non-shared portions. The shared memory area enables efficient communication between virtual processors, while the non-shared memory area preserves data integrity by preventing overwriting. This segmentation allows each memory type to fulfill its specific function without compromising the other.
Solution Approach 2:
The patent introduces a hypervisor as an intermediary layer that manages memory allocation and access. The hypervisor controls which virtual processors can access shared memory and when, mediating between the need for efficient communication and the need to prevent data overwriting. This intermediary enables safe shared memory access while maintaining data integrity.
2Adaptability or versatility
If general shared memory is used to increase the number of guest virtual machines, then system scalability is improved, but memory scan requirements increase
Solution Approach 1:
The patent segments memory into shared and non-shared areas, allowing the system to scale by adding more virtual machines that can utilize the shared memory portion without proportionally increasing the scanning overhead. The non-shared memory portion eliminates the need for scans, reducing time loss as the system scales.
Solution Approach 2:
The patent applies different memory access characteristics to different portions of memory. The shared memory portion allows efficient multi-processor access for scalability, while the non-shared memory portion provides scan-free storage. This local differentiation enables the system to scale without proportionally increasing memory scan requirements.
3Adaptability or versatility
If shared memory is made writable by multiple virtual machines, then communication flexibility is improved, but data overwriting risk increases
Solution Approach 1:
The patent divides memory into a writable shared portion and a protected non-shared portion. The shared portion allows multiple virtual machines to write data for flexible communication, while the non-shared portion protects against overwriting. This segmentation enables flexibility where needed while preventing harm where critical.
Solution Approach 2:
The patent applies different access permissions to different memory regions. The shared memory region has writable access for multiple virtual machines to enable flexible communication, while the non-shared memory region has protected access to prevent overwriting. This local quality differentiation resolves the contradiction between flexibility and safety.
Data Source
AI summary
Methods, systems and computer program products are provided for mixed shared/non-shared memory transport in virtual machines. A computer-implemented method may include providing a shared memory area writeable by a first virtual processor and a second virtual processor that are runnable on a host CPU, retrieving the information stored in the shared memory area by the first virtual processor when the first virtual processor stops running on the host CPU and before the second virtual processor runs on the host CPU, and storing the retrieved information from the shared memory area in a non-shared memory.


