Dynamic Thread Priority Elevation for Resource Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing scenarios where high-priority threads are blocked by low-priority threads that have reserved resources, the existing thread scheduling methods can lead to inefficient resource allocation and prioritization issues, particularly when medium-priority threads interfere, causing delays in the execution of high-priority threads.

Innovation Solution

The proposed solution involves identifying resources reserved by low-priority threads and elevating their priority temporarily above medium-priority threads when a high-priority thread is waiting, ensuring that the high-priority thread gains access to resources more efficiently by expediting the completion of the low-priority thread's tasks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a low-priority thread acquires a reservation of a resource, then the low-priority thread can execute its task unimpeded, but a high-priority thread that needs the same resource is blocked and experiences increased waiting time

Engineering Contradiction:
Improveresource reservation integrityVSAvoidhigh-priority thread waiting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system dynamically adjusts thread priorities based on real-time resource contention situations. When a high-priority thread is blocked by a low-priority thread holding a resource reservation, the scheduler temporarily elevates the low-priority thread's priority to ensure it completes its resource-holding task quickly, thereby reducing the blocking time for the high-priority thread. This dynamic priority adjustment resolves the contradiction by making the priority system adaptive rather than static.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the priority parameter of threads based on their role in resource contention. Specifically, when detecting that a low-priority thread holds a resource that blocks a high-priority thread, the system modifies the priority parameter of the low-priority thread temporarily to accelerate its execution and resource release. This parameter change directly addresses the time loss issue while maintaining resource reservation integrity.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If a medium-priority thread is scheduled above a low-priority thread, then the medium-priority thread consumes more resources, but this may cause incorrect prioritization where the medium-priority thread effectively takes precedence over a high-priority thread

Engineering Contradiction:
Improvemedium-priority thread execution efficiencyVSAvoidthread prioritization correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The scheduler implements feedback mechanisms that continuously monitor resource reservation states and thread blocking situations. When detecting that a high-priority thread is blocked by a low-priority thread, the system uses this feedback to temporarily adjust priorities, ensuring that the low-priority thread completes its task quickly. This feedback loop prevents incorrect prioritization by constantly adapting to the actual system state rather than relying on static priority assignments.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The priority assignment becomes dynamic rather than static, allowing the system to temporarily elevate low-priority threads that hold resources needed by high-priority threads. This dynamic adjustment ensures that medium-priority threads do not incorrectly preempt high-priority threads, as the system actively manages priority based on real-time resource contention rather than fixed priority levels.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If the scheduler allows low-priority threads to hold resources until completion, then resource allocation is simple and fair, but high-priority threads experience delays when blocked by low-priority thread resource holding

Engineering Contradiction:
Improveresource allocation simplicityVSAvoidhigh-priority thread access delay
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system changes the priority parameter of resource-holding low-priority threads temporarily to accelerate their completion. This parameter change maintains the simplicity of the resource allocation mechanism while reducing access delays for high-priority threads, as the low-priority threads are expedited to release their reservations more quickly without complicating the overall allocation logic.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The scheduler performs preliminary detection of resource contention situations before they cause significant delays. When a high-priority thread is about to be blocked by a low-priority thread's resource reservation, the system proactively adjusts priorities to prevent prolonged blocking. This preliminary action maintains allocation simplicity while minimizing delays through anticipatory priority management.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10606653B2Efficient priority-aware thread scheduling
Publication Date: 2020.03.31 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10606653B2 patent drawing
  • US10606653B2 patent drawing
  • US10606653B2 patent drawing

AI summary

A priority-based scheduling and execution of threads may enable the completion of higher-priority tasks above lower-priority tasks. Occasionally, a high-priority thread may request a resource that has already been reserved by a low-priority thread, and the higher-priority thread may be blocked until the low-priority thread relinquishes the reservation. Such prioritization may be acceptable if the low-priority thread is able to execute comparatively unimpeded, but in some scenarios, the low-priority thread may execute at a lower priority than a medium-priority thread that also has a lower priority than the high-priority thread. In this scenario, the medium-priority thread is effectively but incorrectly prioritized above the high-priority thread. Instead, upon detecting this scenario, the device may temporarily elevate the priority of the lower-priority thread over the priority of the medium-priority thread until the lower-priority thread relinquishes the resource, thereby reducing the waiting period of the high-priority thread for the requested resource.