Thread Resource Locking Mechanism for Data Processing Thrashing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing systems, threads often experience thrashing due to frequent reallocation of resources, where one thread's request for a resource is evicted by another, leading to alternating requests that prevent either thread from processing effectively.

Innovation Solution

Implementing resource checking circuitry that sets a lock for unavailable resources and transfers lock ownership to subsequent threads requiring the same resource, ensuring the lock remains active as long as there are pending threads needing it, thus reducing resource reallocation and improving processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If resources are reallocated frequently to accommodate different thread requests, then resource utilization increases, but thread processing stability deteriorates causing thrashing

Engineering Contradiction:
Improveresource utilizationVSAvoidthread processing stability
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The system performs preliminary actions by setting locks on resources when threads request them, even before the threads actually execute. This preliminary locking prevents other threads from reallocation the resources, ensuring that when the original thread finally executes, the resources are still available. This resolves the contradiction by establishing resource ownership in advance, preventing thrashing while maintaining resource utilization.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The lock mechanism acts as an intermediary between competing thread requests and resources. When a thread requests a resource, the lock intermediary is introduced to mediate access rights. The lock owning thread is tracked, and subsequent requests are mediated through the lock checking circuitry which determines whether to grant access or wait. This intermediary prevents direct conflict between threads and ensures stable processing while allowing resource sharing when appropriate.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Stability of the object's composition

If locks are held for extended periods to prevent reallocation, then thread processing stability improves, but resource availability for other threads deteriorates

Engineering Contradiction:
Improveresource availability stabilityVSAvoidresource availability
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The lock duration is made dynamic rather than static. The lock checking circuitry continuously monitors whether the lock owning thread is still pending or has been forwarded for processing. When the lock owning thread is forwarded, the lock is automatically removed, making the resource available again. This dynamic adjustment resolves the contradiction by extending locks only as long as necessary to prevent thrashing, then releasing them to improve resource availability for other threads.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback through the lock checking circuitry which continuously checks the status of lock owning threads. When a thread that holds a lock is forwarded for processing, this feedback triggers the removal of the lock, making the resource available again. This feedback mechanism ensures that locks are held only as long as needed, preventing unnecessary resource hoarding while maintaining stability during the critical pending period.

Inventive Principle:
Principle #23Feedback

3Productivity

If locks are removed immediately after one thread uses a resource, then resource availability improves, but reallocation may occur before other pending threads can use the resource

Engineering Contradiction:
Improveresource availabilityVSAvoidresource continuity for pending threads
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The system takes preliminary action by setting locks when threads first request resources, not when they actually use them. This preliminary locking ensures that all pending threads that will need the resource have it reserved before any thread begins processing. The lock is then maintained throughout the processing of all dependent threads, preventing reallocation issues while ensuring resource availability when needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The lock owning thread mechanism serves as an intermediary that coordinates resource release timing. Instead of releasing locks immediately after individual thread usage, the lock is held by the lock owning thread until that thread is forwarded for processing. This intermediary mechanism ensures that resources remain continuous and available for all pending threads that require them, while still allowing resource availability to improve once the lock owning thread progresses.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8966494B2Apparatus and method for processing threads requiring resources
Publication Date: 2015.02.24 ARM LTD
  • US8966494B2 patent drawing
  • US8966494B2 patent drawing
  • US8966494B2 patent drawing

AI summary

A data processing apparatus has processing circuitry for processing threads using resources accessible to the processing circuitry. Thread handling circuitry handles pending threads which are waiting for resources required for processing. When a request is made for a resource which is not available, a lock is set to ensure that once the resource becomes available, the resource remains available until the lock is removed. This prevents other threads reallocating the resource. When a subsequent pending thread requests access to the same locked unavailable resource, the lock is transferred to that subsequent thread so that the latest thread accessing that resource is considered the lock owning thread. The lock is removed once the lock owning thread is ready for processing.