Thread Priority Inheritance for Synchronization Lock Contention
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Productivity
If lower priority threads are allowed to complete processing first, then system fairness is maintained, but overall system performance deteriorates
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
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
Data Source
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.


