Nested Hypervisor Thread Scheduling for Storage Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing hypervisor systems face challenges in efficiently scheduling and sharing resources, particularly in storage systems, where multiple hypervisors and guest operating systems need to operate independently and share resources without performance penalties or requiring significant modifications to existing code.
Innovation Solution
The system runs a hypervisor as a thread of an underlying operating system, allowing for the nested operation of multiple hypervisors and guest operating systems, with scheduling managed by the underlying operating system to share resources efficiently, including CPU cores, and enabling fractional time sharing in a symmetric multi-processing regime.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If multiple hypervisors and guest operating systems operate independently in a nested configuration, then resource sharing flexibility and independent operation are improved, but system complexity and scheduling overhead increase
Solution Approach 1:
The patent implements nested hypervisors where a first hypervisor runs as a thread of an underlying operating system, and a second hypervisor is nested within the first hypervisor. This nested configuration allows multiple hypervisors and guest operating systems to operate independently while sharing resources through the underlying OS scheduler, resolving the contradiction between independent operation capability and system structure complexity.
2Productivity
If the hypervisor runs as a thread of the underlying operating system, then resource sharing efficiency and CPU allocation flexibility are improved, but scheduling overhead and context switching increase
Solution Approach 1:
The patent merges the hypervisor into the underlying operating system by running it as a thread of the OS. This integration allows the OS scheduler to directly manage hypervisor threads alongside other system threads, improving resource sharing efficiency and CPU allocation flexibility while utilizing the existing OS scheduling infrastructure to minimize additional overhead.
3Ease of manufacture
If code of the hypervisor is modified independently of guest operating system code, then software development flexibility and maintenance ease are improved, but integration complexity and testing requirements increase
Solution Approach 1:
The patent segments the software architecture into distinct layers: the underlying operating system, the first hypervisor running as an OS thread, and nested guest operating systems. This segmentation allows hypervisor code to be modified independently of guest OS code, as each layer operates with its own address space and execution context, reducing integration complexity despite the nested configuration.
Data Source
AI summary
Operating a hypervisor includes running a hypervisor as a thread of an underlying operating system and loading a guest operating system using the hypervisor based on the thread of the underlying operating system, where the hypervisor runs independently of the guest operating system and independently of other hypervisors running as other threads of the underlying operating system. The hypervisor may be a first hypervisor and operating a hypervisor may further include running a second hypervisor nested with the first hypervisor, where the guest operating system may be loaded using both the first hypervisor and the second hypervisor. The underlying operating system may be an operating system of a storage system.


