Nested Hypervisor Thread Scheduling for Guest OS Resource Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current hypervisor systems lack efficient scheduling and resource sharing mechanisms, particularly in storage systems, which hinders optimal operation and performance.

Innovation Solution

The system operates a hypervisor as a thread of an underlying operating system, allowing for independent execution and resource sharing between hypervisors, with nested hypervisor capabilities and scheduling processes that manage fractional time shares for CPU resources, enabling efficient sharing and management of processing resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple hypervisors are run to manage multiple guest operating systems, then the ability to manage multiple guest operating systems is improved, but resource scheduling efficiency deteriorates

Engineering Contradiction:
Improveability to manage multiple guest operating systemsVSAvoidresource scheduling efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements nested hypervisors where a first hypervisor runs as a thread within a second hypervisor, allowing multiple hypervisors to coexist hierarchically. This nesting structure enables the system to manage multiple guest operating systems through different hypervisor layers while the underlying operating system's scheduler efficiently allocates CPU resources across all hypervisor threads, resolving the contradiction between multi-GOS management capability and scheduling efficiency.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Adaptability or versatility

If hypervisors share CPU resources through traditional scheduling, then resource sharing is improved, but performance penalties occur

Engineering Contradiction:
Improveresource sharing capabilityVSAvoidperformance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent enables hypervisors to run as native threads of the underlying operating system, allowing them to directly access and share CPU resources through the OS scheduler without additional virtualization overhead. This self-service approach lets hypervisors efficiently share CPU time slots and resources while maintaining performance, as the OS scheduler natively manages thread allocation without requiring complex hypervisor-level resource arbitration.

Inventive Principle:
Principle #25Self-service

3Reliability

If hypervisors are run independently without thread integration, then independence between hypervisors is improved, but resource allocation flexibility deteriorates

Engineering Contradiction:
Improveindependence between hypervisorsVSAvoidresource allocation flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the hypervisor functionality into independent threads that can be individually scheduled and managed by the underlying operating system. Each hypervisor runs as a separate thread with its own execution context, maintaining independence and isolation, while the OS scheduler provides flexible resource allocation across all threads. This segmentation allows hypervisors to operate independently while benefiting from the OS's sophisticated resource management capabilities.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9898316B1Extended fractional symmetric multi-processing capabilities to guest operating systems
Publication Date: 2018.02.20 EMC IP HLDG CO LLC
  • US9898316B1 patent drawing
  • US9898316B1 patent drawing
  • US9898316B1 patent drawing

AI summary

Operating at least one hypervisor includes running a first hypervisor as a first thread of an underlying operating system, running a second hypervisor as a second thread of the underlying operating system, loading a first guest operating system using the first hypervisor based on the first thread of the underlying operating system, loading a second guest operating system using the second hypervisor based on the second thread of the underlying operating system, and scheduling sharing of resources of the underlying system between the first hypervisor and the second hypervisor according to a scheduler of the underlying operating system, where the first hypervisor and the second hypervisor run independently of each other. The scheduler of the underlying operating system may schedule fractional time shares for the first hypervisor and the second hypervisor to access the same resource.