Application Contexts for Virtual Machine Control in Embedded Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software architectural technologies cannot efficiently apply to embedded software development in resource-constrained devices, as they lack mechanisms for native applications to run under the control of a virtual machine, resulting in limited resource sharing and no control from the virtual machine side.

Innovation Solution

The introduction of application contexts that map services provided by native applications to a virtual machine interface and maintain the state of these applications, allowing the virtual machine to control scheduling and resource management of native applications, enabling shared resource utilization and extension of virtual machine functionality without architectural changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional software architectural technologies are used in resource-constrained devices, then the operating system can run native applications independently, but the virtual machine cannot control or schedule native applications and resource sharing is limited

Engineering Contradiction:
Improvevirtual machine control capabilityVSAvoidsoftware architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an application context as an intermediary layer between the virtual machine and native applications. This application context enables the virtual machine to control and schedule native applications without requiring fundamental changes to the device's software architecture, thus resolving the contradiction by providing control capability while maintaining architectural simplicity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The application context serves multiple functions: it acts as a container for native applications, provides a mapping mechanism between virtual machine services and native application services, maintains application state, and enables scheduling control. This multi-functionality allows a single component to bridge the virtual machine and native applications, improving versatility without proportionally increasing complexity

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Productivity

If native applications run independently outside virtual machine control, then they can execute with direct OS access, but resource sharing with virtual machine applications is inefficient and development time increases

Engineering Contradiction:
Improvedevelopment timeVSAvoidresource utilization efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent segments the execution environment by introducing application contexts that allow both virtual machine applications and native applications to run within the virtual machine's scheduling domain. This segmentation enables efficient resource sharing and unified management, improving productivity while reducing resource waste through coordinated execution

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges the control mechanisms for virtual machine applications and native applications under a unified virtual machine scheduler through the application context interface. This merging allows both types of applications to share resources efficiently and be managed consistently, reducing development time while improving resource utilization

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7895594B2Virtual machine extended capabilities using application contexts in a resource-constrained device
Publication Date: 2011.02.22 NXP USA INC
  • US7895594B2 patent drawing
  • US7895594B2 patent drawing
  • US7895594B2 patent drawing

AI summary

Embodiments of the systems and methods utilize application contexts for extending virtual machines in a resource-constrained device to allow virtual machines to at least exercise scheduling control over platform independent applications and platform dependent native applications. Application contexts can be assigned to each application in the system. An application is represented by one or more data structures and functions. In one embodiment, an “application context” includes an interface to a virtual machine and a container for an execution environment of the application. The interface represents a mapping of services to an execution environment. The application context can isolate control over the execution of the application from the execution environment, thus, allowing the virtual machine to control execution of the application and allowing the application to be executed in a native environment, a virtual machine environment, or any other execution environment.