FIFO Distributed Resource Reservations for Deadlock Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deadlocks occur in multi-threaded or multi-processor systems when processes or threads are stuck in a circular dependency, competing for finite resources or waiting for messages, leading to system halt despite existing prevention and detection methods.

Innovation Solution

A resource reservation system is implemented in two steps, where a query node initiates a spot reserve request, and a clerk node manages queues to ensure resource reservations are made in a first-in-first-out order across query nodes, preventing deadlocks by ensuring resources are reserved in a consistent sequence.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If processes or threads compete for finite resources in multi-threaded or multi-processor systems, then resource utilization is improved, but deadlocks occur when circular dependencies are created

Engineering Contradiction:
Improveresource utilizationVSAvoidsystem stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by requiring processes to declare all required resources in advance through a resource allocation graph before execution. The system performs deadlock detection analysis beforehand to determine if the requested resource allocation would create a circular dependency. Only if the allocation is safe (does not create deadlock) is the resource granted. This prevents deadlocks by acting in advance rather than reacting after deadlock conditions arise.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If deadlock detection and process termination methods are used, then system recovery is possible, but system progress is halted and productivity is reduced

Engineering Contradiction:
Improvesystem recoveryVSAvoidsystem progress
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary anti-action by implementing a resource allocation graph that proactively identifies and prevents circular dependency formation before deadlocks occur. The system analyzes the requested resource allocation against the current state of resource holdings and pending requests. If the allocation would create a cycle (deadlock condition), the request is denied or redirected. This prevents deadlocks rather than detecting and recovering from them, thereby avoiding system halts and maintaining continuous productivity.

Inventive Principle:
Principle #9Preliminary anti-action

3Reliability

If resource allocation graphs are used to visualize and prevent deadlocks, then deadlock prevention is achieved, but system complexity increases

Engineering Contradiction:
Improvedeadlock preventionVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies the intermediary principle by introducing a resource allocation graph as a mediating data structure between resource requests and resource allocation. The graph serves as an intermediary model that captures the state of resource holdings and pending requests, enabling systematic deadlock analysis. Rather than complex distributed protocols or hardware mechanisms, the system uses this intermediary graph representation to safely manage resource allocation and prevent deadlocks through algorithmic analysis of the graph structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12360825B2Deadlock prevention utilizing distributed resource reservations
Publication Date: 2025.07.15 MICRO FOCUS LLC
  • US12360825B2 patent drawing
  • US12360825B2 patent drawing
  • US12360825B2 patent drawing

AI summary

In multi-threaded or multi-processor computing systems, a deadlock may occur when two or more processes or threads are unable to proceed because they are each waiting for a resource that the other holds. As a result, progress is halted because conflicting entities are stuck in a circular dependency, and none can release the resources they hold to let the others continue. Systems and methods are provided wherein a resource reservation is carried out in two steps. The first step causes query nodes to add an identifier to a queue and, upon a request and the identifier being in a first position, a non-sharable resource is reserved. As a result, non-sharable resources are reserved in order and when needed, thereby preventing deadlocks.