Ordered Mutual Exclusion via Segmented Priority Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current resource management schemes using locks, such as mutex, can lead to thread starvation, priority inheritance, and deadlock issues, particularly in systems where requests to shared resources need to be serviced in the order received rather than based on thread priority.
Innovation Solution
Implementing a queue manager data structure that allows resource users to obtain a unique place in line for accessing a shared resource, using atomic fields to prevent race conditions, and employing notification mechanisms like broadcast signals or events to ensure sequential access without relying on locks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If priority-based mutex allocation is used, then high priority threads can access shared resources faster, but lower priority threads may be starved indefinitely
Solution Approach 1:
The patent segments the thread queue into multiple priority levels (first priority queue and second priority queue), allowing threads to be managed separately based on their priority. This segmentation enables high priority threads to access resources faster while ensuring low priority threads still get serviced eventually, eliminating starvation.
Solution Approach 2:
The patent implements dynamic queue management where the system can switch between serving first priority threads and second priority threads based on current system state. The queue manager dynamically adjusts which queue is serviced next, allowing flexible response to different threading scenarios while maintaining fairness.
2Reliability
If automatic priority inheritance is implemented, then thread starvation is reduced, but deadlock and repeated cycling between priorities may occur
Solution Approach 1:
The patent divides threads into distinct priority queues (first priority queue for higher priority threads, second priority queue for lower priority threads) and manages them separately. This segmentation simplifies priority management by avoiding the complex dynamic adjustments of traditional priority inheritance, reducing the risk of deadlock and repeated cycling.
Solution Approach 2:
The queue manager acts as an intermediary between threads and shared resources, mediating access by servicing queues in a controlled manner. This intermediary approach simplifies the overall system complexity by centralizing queue management logic and avoiding the need for complex priority inheritance mechanisms.
3Reliability
If mutex locks are used for resource access control, then exclusive access is guaranteed, but requests are not serviced in order received
Solution Approach 1:
The patent segments request handling into ordered queues where requests are processed in the order they are received. By maintaining FIFO (first-in-first-out) ordering within each priority queue and servicing queues in order, the system guarantees both exclusive access and ordered request processing, eliminating the need for traditional mutex locks.
Solution Approach 2:
The patent replaces the mechanical mutex locking system with a software-based queue management system. Instead of using mutex locks that inherently ignore request order, the system uses ordered queues and a queue manager to control access, achieving both exclusive access and request ordering through software logic rather than hardware primitives.
Data Source
AI summary
Ordered mutual exclusion is disclosed. A place in line to access a shared computing resource is obtained. In some embodiments the place in line is obtained by obtaining a globally unique place identifier. An indication is received that the shared computing resource is available to a specific next resource user. It is determine whether the place in line corresponds to the next resource user.


