Dynamic Memory Allocation for Virtual Machines
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The static memory partitioning scheme in virtualization technologies restricts the number of virtual machines that can be run on a physical machine, as memory allocation is fixed and not dynamically adjusted, leading to inefficiencies in resource utilization and performance, especially in environments like smartphones where memory is limited.
Innovation Solution
A method and apparatus for dynamically allocating memory to virtual machines by monitoring access patterns and using the monitoring information to determine optimal memory allocation amounts, allowing for efficient partitioning of main memory based on determined needs, thereby improving system performance and enabling more virtual machines to run concurrently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a static memory partitioning scheme is used, then memory allocation is simple and stable, but the number of virtual machines that can be run simultaneously is limited and resource utilization is inefficient
Solution Approach 1:
The patent implements dynamic memory partitioning where the memory allocation amount for each virtual machine is not fixed but can be adjusted based on actual usage. The system monitors memory access patterns and dynamically reallocates memory from virtual machines with low usage to those with high usage, allowing the number of simultaneously running virtual machines to increase while maintaining efficient resource utilization.
Solution Approach 2:
The system continuously monitors memory access information from each virtual machine and uses this feedback to make real-time adjustments to memory allocation. By tracking which virtual machines are underutilizing their allocated memory and which are experiencing memory pressure, the system can dynamically rebalance allocations to maximize the number of runnable virtual machines without requiring complex manual configuration.
2Productivity
If memory is statically allocated to virtual machines, then performance isolation is maintained, but system performance deteriorates due to inefficient memory utilization
Solution Approach 1:
The patent enables the memory allocation amount to dynamically change based on actual usage patterns. Instead of permanently assigning fixed memory blocks to each virtual machine, the system continuously adjusts allocations to match real-time demands, ensuring that memory resources are fully utilized without waste while maintaining the performance isolation benefits of virtualization.
Solution Approach 2:
The system identifies memory that is allocated but not being used by virtual machines and recovers this memory for reallocation to other virtual machines that need it. This discarding of unused allocations and subsequent recovery/reassignment of those resources to higher-priority or higher-demand virtual machines eliminates waste and improves overall system productivity.
3Adaptability or versatility
If the memory size is increased to run more virtual machines, then the number of virtual machines increases, but the cost and physical constraints remain restrictive
Solution Approach 1:
The patent implements dynamic memory partitioning where the memory allocation amount for each virtual machine is not fixed but can be adjusted based on actual usage. The system monitors memory access patterns and dynamically reallocates memory from virtual machines with low usage to those with high usage, allowing the number of simultaneously running virtual machines to increase without increasing total memory capacity.
Solution Approach 2:
The system makes the limited physical memory serve multiple functions and multiple virtual machines simultaneously through intelligent dynamic allocation. By allowing memory to be shared and reallocated across different virtual machines based on demand, the same physical memory resources can support a larger number of virtual machines than would be possible with static partitioning, effectively increasing the system's virtualization capacity without additional hardware.
Data Source
AI summary
A method and apparatus for managing a memory in a portable terminal including a main memory, a secondary memory, and a plurality virtual machines allocated by partitioning the main memory are provided. The method includes generating, by the virtual machines, monitoring information by monitoring access to the main memory and the secondary memory and swapping out with respect to the secondary memory; determining memory allocation amounts for each of the virtual machines by using the monitoring information; and allocating the main memory to the virtual machines in a partitioning scheme based on the determined memory allocation amounts.


