Application Code Injection for Selective Hardware Virtualization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing virtualization methods for computer systems lead to performance degradation due to unnecessary resource consumption, as all hardware resources are virtualized, even if not needed, resulting in increased overhead and slower application execution.

Innovation Solution

A method where an executable piece of code is injected into each application to selectively virtualize only the required hardware resources, intercepting API calls to manage data flow and generate virtualized resources on demand, reducing unnecessary virtualization and resource consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If all hardware resources are virtualized to enable concurrent execution of multiple operating systems, then system versatility is improved, but system performance deteriorates due to increased overhead and resource consumption

Engineering Contradiction:
Improvesystem versatilityVSAvoidsystem performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the virtualization process by injecting separate code modules into individual applications rather than virtualizing the entire system. Each application receives only the specific hardware resource virtualization it needs, dividing the monolithic virtualization approach into fine-grained, application-specific segments that reduce overall system overhead while maintaining versatility.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If virtualization software is installed to emulate hardware resources for multiple operating systems, then adaptability is improved, but device complexity increases due to the additional virtualization layer

Engineering Contradiction:
ImproveadaptabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the virtualization functionality from a separate virtualization software layer and integrates it directly into individual applications through code injection. This removes the need for a comprehensive virtualization software installation, reducing system complexity while maintaining the adaptability to support multiple operating systems through application-specific virtualization.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If code is injected into each application to selectively virtualize hardware resources, then productivity is improved by reducing overhead, but device complexity increases due to the injection mechanism

Engineering Contradiction:
Improveapplication execution speedVSAvoidinjection mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service virtualization where each application receives code injection that enables it to selectively virtualize only the hardware resources it specifically requires. This self-service approach allows applications to autonomously manage their own virtualization needs, improving execution speed by eliminating unnecessary virtualization overhead while the injection mechanism complexity is managed through automated, application-specific code insertion.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP2840497B1Method, system and an executable piece of code for the virtualisation of a hardware resource associated with a computer system
Publication Date: 2020.03.18 UNIV POLITECNICA DE CATALUNYA
  • EP2840497B1 patent drawingFigure 1
  • EP2840497B1 patent drawingFigure 2

AI summary

The invention relates to a method for the virtualization of a hardware resource associated with a computer system by an executable piece of code adapted for being injected into a process belonging to an application that is executed on an operating system comprising at least one API that is executed on the computer system. The method comprises: intercepting a call from the process to an API service related with the management of the data flow produced between the process and the hardware resource; and managing the data flow produced between the process and the hardware resource by the piece of code on the basis of the interception of the call from the process to the API service related with the management of the data flow produced between the process and the hardware resource.