Virtual Machine CPU Time Management via Isolate Suspension
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Safe language platforms, such as Java, lack control over resource management, particularly in virtual machine environments, leading to inefficiencies in CPU time allocation and potential denial of service attacks, as they rely on kernel thread schedulers for multithreading and thread priorities.
Innovation Solution
A method to manage CPU time consumption by tracking per-polling period CPU usage, computing usage rates, and suspending isolates if they exceed specified rates, allowing for smoother CPU distribution and preventing overuse.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If the operating system manages resources at the kernel level, then resource management functionality is provided, but the virtual machine loses control over resource allocation
Solution Approach 1:
The virtual machine introduces an intermediary layer between the operating system kernel and the applications. This intermediary manages CPU time allocation at the virtual machine level by tracking isolate CPU usage across polling periods and enforcing CPU time limits, thereby maintaining virtual machine control while utilizing operating system resources
Solution Approach 2:
The system segments CPU time management by creating isolates with distinct CPU time quotas. Each isolate is allocated a specific portion of CPU time (e.g., 20% for the first isolate, 80% for the second), and the virtual machine tracks and enforces these segments independently, preventing any single isolate from consuming all resources
2Ease of operation
If kernel thread schedulers are used for multithreading, then thread management is simplified, but CPU time cannot be partitioned among isolates
Solution Approach 1:
The system dynamically adjusts CPU time allocation by monitoring isolate performance across multiple polling periods. The virtual machine computes usage rates based on historical data and can suspend isolates that exceed their allocated CPU time, enabling adaptive resource distribution that responds to actual usage patterns while maintaining the simplified kernel thread scheduling interface
3Adaptability or versatility
If applications execute without CPU time limits, then application flexibility is maintained, but denial of service attacks become possible
Solution Approach 1:
The virtual machine performs preliminary action by pre-allocating CPU time quotas to each isolate before execution begins. The system continuously monitors CPU usage against these pre-established limits and suspends isolates that exceed their allocations, preventing denial of service attacks while allowing applications to execute freely within their assigned resource boundaries
Data Source
AI summary
A method for managing CPU time consumption, involving obtaining a per-polling period CPU consumption time associated with an isolate executing on a virtual machine for each of a plurality of polling periods, computing a usage rate for the isolate over a usage period using the per-polling period CPU consumption time associated with each of the plurality of polling periods within the usage period, comparing the usage rate to a specified rate associated with the isolate, and suspending the isolate in the virtual machine if the usage rate exceeds the specified rate.


