Thread Pool Component Execution for Robot Software Reliability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In robot software systems, a failure in one component can lead to system-wide failures due to inefficient thread allocation and frequent context switching, causing performance deterioration and obstruction of other component executions, even with added monitoring systems that require additional communication.

Innovation Solution

An apparatus and method utilizing a thread pool to execute components with set priorities and periods, where components are registered and executed based on allocated threads, with failure detection through internal memory information, allowing for seamless failure handling without additional communication, such as with a monitor.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a thread is allocated to each component, then component execution reliability is improved, but system resource waste increases and context switching frequency increases

Engineering Contradiction:
Improvecomponent execution reliabilityVSAvoidsystem resource waste
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent segments components into groups that share common execution periods and priorities, allowing multiple components to be executed together using a single thread. This segmentation by execution characteristics eliminates the need for dedicated threads for each component, reducing resource waste while maintaining reliable execution through structured group management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A single thread is designed to serve multiple components within its execution period, making the thread a universal resource that can execute any component from its assigned group. This multi-functionality approach allows one thread to perform the work of multiple dedicated threads would have been needed, reducing overall system resource consumption.

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

2Reliability

If a thread is allocated to each component, then component execution reliability is improved, but context switching frequency increases deteriorating system performance

Engineering Contradiction:
Improvecomponent execution reliabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Components are segmented into execution groups based on their periods and priorities, allowing a single thread to execute multiple components from the same group without context switching between different period/priority groups. This segmentation strategy reduces context switching frequency while maintaining reliable execution through structured group management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements periodic execution where threads execute components at predetermined periods. By organizing components into groups with matching periods, the system can execute multiple components within the same period using a single thread, minimizing context switching between periodic executions and improving overall system performance.

Inventive Principle:
Principle #19Periodic action

3Productivity

If components are processed using a single thread, then system performance is maintained, but failure in one component obstructs execution of other components

Engineering Contradiction:
Improvesystem performanceVSAvoidsystem-wide failure prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments components into independent execution groups based on their periods and priorities. Each group is executed by a dedicated thread, so a failure in one group does not affect other groups. This segmentation provides both performance efficiency (single thread per group) and reliability isolation (independent group execution).

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system prepares for potential component failures by executing components in isolated groups with independent threads. This beforehand cushioning ensures that if one component fails, the failure is contained within its group and does not propagate to other components, maintaining system-wide reliability while preserving performance benefits.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

4Reliability

If a monitor is added to detect component abnormalities, then system reliability is improved, but additional communication overhead increases deteriorating system performance

Engineering Contradiction:
Improvecomponent execution monitoringVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Each thread monitors its own execution status and the status of components within its group, eliminating the need for a separate monitor system. The thread self-services by detecting abnormalities and managing its own group's execution, thereby achieving reliable monitoring without the communication overhead associated with external monitor systems.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The monitoring function is extracted from a separate monitor system and integrated directly into the thread execution mechanism. By taking out the monitoring capability and embedding it within the thread itself, the system achieves reliable component monitoring without the additional communication overhead that would result from a separate monitor architecture.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8984518B2Apparatus and method for executing components based on thread pool
Publication Date: 2015.03.17 ELECTRONICS & TELECOMM RES INST
  • US8984518B2 patent drawing
  • US8984518B2 patent drawing
  • US8984518B2 patent drawing

AI summary

An apparatus for executing components based on a thread pool includes a component executor configured to have a set priority and period, to register components having the set priority and period, and to execute the registered components. Further, the apparatus for executing the components based on the thread pool includes a thread pool configured to allocate a thread for executing the component executor; and an Operating System (OS) configured to create an event for allocating the thread to the component executor in each set period.