Application Contexts for Virtual Machine Control in Embedded Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
Data Source
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.


