Virtual Machine Memory Expansion via Host OS Swap File Block Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing Virtual Machine technologies are limited by the finite virtual memory allocation imposed by host operating systems, which is insufficient for server applications requiring larger address spaces and memory allocations.
Innovation Solution
A system and method that virtualizes processor and memory by using virtualization software to manage memory blocks stored in an image file, allowing for larger virtual memory allocations beyond the host OS limitations, with mechanisms for block mapping, swapping, and counter-based management to optimize memory usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If the host operating system allocates finite virtual memory to each Virtual Machine process, then the system maintains simplicity and compatibility with existing OS limitations, but the Virtual Machine cannot access sufficient memory for server applications requiring large address spaces
Solution Approach 1:
The patent introduces a virtualization software layer that acts as an intermediary between the host operating system and the Virtual Machine. This intermediary manages memory blocks, aggregates them into larger virtual memory spaces, and handles the mapping between host physical memory and virtual machine address spaces, enabling large memory allocations without requiring the host OS to natively support such large process virtual memory limits
Solution Approach 2:
The patent segments memory management into discrete blocks that can be independently managed. Memory is divided into manageable units (blocks) that the virtualization software can aggregate, swap, and manage according to Virtual Machine needs, allowing flexible memory allocation that exceeds traditional OS process memory limits while maintaining systematic control
2Quantity of substance
If the Virtual Machine is given a larger address space and memory allocation, then server applications can benefit from increased memory capacity, but the host operating system's traditional process memory limits are exceeded
Solution Approach 1:
The virtualization software serves as a mediator that translates large Virtual Machine memory requests into manageable host OS operations. It manages block aggregation and swapping mechanisms that allow the Virtual Machine to access large physical memory spaces while the host OS maintains its traditional memory management stability and process limits
Solution Approach 2:
The patent implements dynamic memory management where memory blocks can be dynamically swapped in and out of the Virtual Machine's address space based on actual needs. This dynamic aggregation and de-aggregation of memory blocks allows flexible memory allocation that adapts to server application requirements while maintaining host OS stability
3Adaptability or versatility
If traditional host OS memory limits are enforced for Virtual Machines, then system simplicity and compatibility are maintained, but flexibility for diverse memory requirements (especially server applications) is reduced
Solution Approach 1:
By segmenting memory into manageable blocks that can be independently aggregated and managed, the system achieves flexible memory allocation for different Virtual Machine needs. This segmentation allows server applications to receive large memory allocations while desktop applications use traditional limits, all managed through a unified virtualization layer
Solution Approach 2:
The virtualization software provides universal memory management that serves multiple functions: it manages traditional process memory limits for desktop applications, enables large memory allocations for server applications, handles block aggregation and swapping, and maintains compatibility with existing host OS memory management mechanisms
Data Source
AI summary
A system, method and computer program product for virtualizing a processor and its memory, including a host operating system (OS); and virtualization software that maintains a virtualization environment for running a Virtual Machine (VM) without system level privileges and having a guest operating system running within the Virtual Machine. A plurality of processes are running within the host OS, each process having its own virtual memory, wherein the virtualization software is one of the processes. A host OS swap file is stored in persistent storage and maintained by the host operating system. The host OS swap file represents virtualized physical memory of the VM. A plurality of memory pages are aggregated into blocks, the blocks being stored in the host OS swap file and addressable in block form. The virtualization software manages the blocks so that blocks can be mapped to the virtualization software process virtual memory and released when the blocks are no longer necessary. The host OS swaps the blocks between the host OS swap file and physical memory when a block that is not in physical memory is accessed by the VM. The host OS swap file size is not subject to limitation on virtual process memory size. A user of the VM can access a larger virtual process memory than the host OS permits.


