Dynamic Shared Memory for Secure Application Data Exchange
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for data communication between software applications from different sources, such as device drivers and operating systems, face inefficiencies due to static memory allocation and resource-intensive direct data transmission, particularly when dealing with untrusted applications like third-party device drivers.
Innovation Solution
Implementing a dynamic shared memory system with metadata and signal registers allows for efficient data communication by configuring the data region's size and access based on the applications' needs, using key-value pairs for metadata and interrupt handling for synchronized data transfer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a static shared storage space is allocated for data communication between applications, then security is improved by limiting access, but memory efficiency deteriorates when data volume exceeds the allocated space
Solution Approach 1:
The patent implements a dynamic shared storage space where the memory allocation is not fixed but can be adjusted based on actual communication needs. The system allows the shared storage space to expand or contract dynamically, enabling it to accommodate varying data volumes while maintaining security boundaries between applications.
2Speed
If direct data transmission is used between applications, then communication speed is improved, but resource consumption and algorithm complexity increase
Solution Approach 1:
The patent introduces a shared storage space as an intermediary mechanism between applications for data communication. Instead of direct application-to-application transmission, data is written to and read from the shared storage space, which acts as a buffer. This approach maintains efficient communication while reducing the computational complexity and resource consumption associated with direct transmission protocols.
Data Source
AI summary
A computer system has a memory configured for sharing data between a first application and a second application. The memory includes a metadata region and a data region. The metadata region includes metadata that indicates how data being communicated between the first application and the second application is to be interpreted. The metadata also indicates whether the data can be found in the metadata itself or in a particular location in the data region. Each application can be assigned its own memory location containing a flag that can be set in order to indicate to the other application that the memory is ready to be accessed by the other application. The memory location can be implemented using a hardware register or in memory, either the same memory that includes the metadata and data regions or on a separate memory.


