Thread Messaging Abstraction Layer for Embedded Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Developing efficient communication mechanisms between execution threads in electronic devices, particularly in embedded systems, is challenging due to the need for maximizing parallelism and handling real-time tasks with restricted hardware resources, often requiring custom operating systems that increase development costs and complexity.
Innovation Solution
A standardized messaging interface and abstraction layer that allows execution threads to communicate through messages regardless of their location or relationship, using various data transfer mechanisms such as shared memory, inter-process pipes, and communication links, while providing a unified event model and timer management to simplify thread communication and management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a custom operating system is developed to facilitate thread communication and maximize parallelism, then thread communication efficiency and parallelism are improved, but development cost and system complexity increase
Solution Approach 1:
The patent introduces an intermediary abstraction layer between threads and the underlying operating system. This layer provides standardized messaging interfaces that automatically handle communication details, including selecting appropriate data transfer mechanisms (shared memory, pipes, sockets) based on thread relationships. The intermediary layer manages communication efficiency without requiring developers to implement custom OS-level solutions.
Solution Approach 2:
The messaging interface is designed to be universal, handling communication between threads regardless of their process location or relationship. A single interface supports multiple data transfer mechanisms (shared memory for same-process threads, pipes for inter-process communication, sockets for network communication), making the system adaptable to various scenarios without requiring separate solutions for each case.
2Adaptability or versatility
If multiple data transfer mechanisms are implemented to handle different thread relationships, then communication versatility is improved, but system complexity and implementation difficulty increase
Solution Approach 1:
The system dynamically selects the appropriate data transfer mechanism based on the relationship between communicating threads. The messaging interface automatically determines whether to use shared memory, pipes, or sockets by analyzing thread process associations, eliminating the need for manual configuration. This dynamic adaptation provides versatility while maintaining simplicity through automated decision-making.
Solution Approach 2:
The patent creates a simplified copy of the communication interface that works across different platforms and hardware architectures. By abstracting the communication details into a standardized messaging interface, the system provides consistent thread communication functionality without requiring platform-specific implementations, thus reducing complexity while maintaining versatility.
3Speed
If real-time communication between threads is implemented with optimized data transfer, then real-time performance is improved, but hardware resource requirements and system complexity increase
Solution Approach 1:
The messaging interface allows dynamic adjustment of communication parameters such as message priority, timing characteristics, and data transfer size. By changing these parameters based on real-time requirements, the system achieves real-time performance without requiring dedicated hardware resources. The interface can adapt to different real-time needs through software-based parameter modification rather than hardware changes.
Data Source
AI summary
A method of communication in at least one electronic device is presented. In the method, a first execution thread and a second execution thread are created in the at least one electronic device. Also created is a message service for receiving messages for the first thread. A message to be transferred from the second thread to the message service of the first thread is generated. One of multiple data transfer mechanisms is selected for transferring the message from the second thread to the message service of the first thread based on a relationship between the first and second threads. This relationship may be one in which the first and second threads are executing within a single process, within different processes of the same device, or within different devices. The message is transferred to the message service of the first thread using the selected data transfer mechanism and processed in the first thread.


