Thread Priority Inheritance for Synchronization Lock Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer systems, high priority threads often have to wait behind lower priority threads for synchronization objects, leading to detrimental delays and suboptimal system performance due to the prioritization and locking mechanisms currently in use.

Innovation Solution

Implementing a system that promotes the priority of lower priority threads holding or waiting for a synchronization object to the level of the requesting high priority thread, allowing the lower priority threads to process more quickly and return to their original priority upon releasing the lock, thereby reducing wait times for high priority threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If traditional first-come-first-served locking mechanism is used, then system simplicity is maintained, but high priority threads experience excessive wait times

Engineering Contradiction:
Improvewait time for high priority threadsVSAvoidsynchronization mechanism complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent implements dynamic priority inheritance where the priority of threads holding synchronization objects is temporarily elevated to match the priority of waiting threads. This dynamic adjustment resolves the contradiction by making the scheduling mechanism adaptive rather than static, allowing high-priority threads to inherit the lower priority of holding threads and thus reducing their effective wait time without requiring a completely complex new scheduling system

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the priority parameter of threads dynamically based on their relationship to synchronization objects. When a high-priority thread waits for a lock held by a low-priority thread, the low-priority thread's priority parameter is temporarily changed to match the high-priority thread's priority, thereby reducing the wait time without permanent system reconfiguration

Inventive Principle:
Principle #35Parameter changes

2Productivity

If lower priority threads are allowed to complete processing first, then system fairness is maintained, but overall system performance deteriorates

Engineering Contradiction:
Improveoverall system performanceVSAvoidthread scheduling fairness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies dynamic priority adjustment that temporarily modifies thread priorities during synchronization events. This dynamic approach resolves the contradiction by allowing the system to be fair in the long term (threads return to original priorities) while being efficient in the short term (high priority threads don't wait indefinitely), thus improving overall productivity without permanently compromising fairness

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary priority adjustment before the high-priority thread can proceed with its critical operations. By proactively elevating the priority of the holding thread to match the waiting thread's priority, the system prevents the fairness-performance contradiction from manifesting, allowing high-priority work to proceed without excessive delays while maintaining the illusion of fair scheduling

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10740159B2Synchronization object prioritization systems and methods
Publication Date: 2020.08.11 EMC IP HLDG CO LLC
  • US10740159B2 patent drawing
  • US10740159B2 patent drawing
  • US10740159B2 patent drawing

AI summary

A method for controlling a synchronization object of a computer processing system that includes executing a plurality of processing threads, each of the processing threads having a priority level within the computer processing system. At least one of the plurality of threads requests a lock to the synchronization object. The priority of lower priority processing threads that have a lock to the synchronization object or are waiting in a waiting queue for the synchronization object are promoted. The lower priority threads having a priority lower than the lock requesting thread are promoted to a priority level that is at least as high as that of the lock requesting thread. Upon a release of the lock by a promoted processing thread, returning the promoted processing thread to the original priority level from which the processing thread was promoted.