RTOS Signal Handler Deadlock Prevention via Alternative Stack Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In real-time operating systems (RTOS), task-signal deadlocks can occur due to contention for a mutex, where a signal handler tries to acquire a mutex held by a task, leading to priority inversion and deadlock scenarios.

Innovation Solution

The method involves detecting signal notifications and identifying the mutex to be acquired by the signal handler. If the mutex is already acquired by a task, an alternative stack is utilized for the signal handler's execution, preventing deadlock.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the signal handler executes on the same stack as the task, then stack memory is saved, but task-signal deadlock occurs due to mutex contention

Engineering Contradiction:
Improvestack memory usageVSAvoiddeadlock prevention
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent segments the execution context by introducing a separate signal handler stack distinct from the task stack. This segmentation allows the signal handler to execute without interfering with the task's mutex holding state, eliminating the deadlock condition while maintaining efficient stack memory utilization through proper isolation of execution paths.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent resolves the deadlock by transitioning from a single-stack execution model to a multi-stack model, adding the dimension of separate execution contexts. By allocating a dedicated signal handler stack, the system creates an additional execution dimension that prevents the signal handler from blocking the task on the same stack, thereby eliminating task-signal deadlock.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If priority inheritance is used to solve priority inversion, then higher priority tasks can wait for resources, but the execution rule of higher priority task first is compromised

Engineering Contradiction:
Improvepriority inversion resolutionVSAvoidexecution rule compliance
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent segments the execution context by introducing a separate signal handler stack distinct from the task stack. This segmentation allows the signal handler to execute without interfering with the task's mutex holding state, eliminating the deadlock condition while maintaining efficient stack memory utilization through proper isolation of execution paths.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by checking whether the signal handler needs to acquire the mutex before execution. If the mutex is already held by the task, the system proactively allocates an alternative stack for the signal handler, preventing potential deadlock before it occurs. This preliminary detection and preparation ensures that priority inversion is resolved without compromising execution rules.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12327148B2Method and apparatus for preventing task-signal deadlock due to contention for mutex in RTOS
Publication Date: 2025.06.10 SAMSUNG ELECTRONICS CO LTD
  • US12327148B2 patent drawing
  • US12327148B2 patent drawing
  • US12327148B2 patent drawing

AI summary

A method for preventing a task-signal deadlock arising due to contention for a mutex in a real-time operating system (RTOS) includes detecting, by a processing unit, a signal notification sent to a task for execution of a signal handler; identifying, by the processing unit, a mutex to be acquired by the signal handler, when the signal notification is detected; determining whether the identified mutex has been acquired by the task; and utilizing, by the processing unit, an alternative stack for execution of the signal handler, in response to determining that the mutex has been acquired by the task, for preventing a task-signal deadlock during the execution.