Priority-Aware Queue Preemption for Shared Resource Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computing systems with shared resources among multiple processors or applications, a simple FIFO queue is insufficient to manage requests effectively, leading to resource conflicts, missed deadlines, and non-determinism, especially in real-time priority systems where higher priority requests need to be executed promptly without delaying lower priority tasks.
Innovation Solution
Implementing a priority-aware queue system where higher priority requests preempt lower priority ones, with options for resumption or rejection, and providing a duration of availability to requestors to adjust their requests, allowing for efficient sharing of resources and real-time guarantees.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a simple FIFO queue is used to manage requests for shared resources, then the system structure is simple and easy to implement, but higher priority requests cannot be executed promptly and resource conflicts occur
Solution Approach 1:
The patent implements a dynamic priority-based queue structure that allows requests to be preempted and reordered based on their priority levels. The queue transitions from a static FIFO structure to a dynamic structure where higher priority requests can interrupt lower priority requests, enabling prompt execution of critical tasks while maintaining system manageability through structured priority levels.
2Reliability
If higher priority requests preempt lower priority requests, then real-time guarantees are achieved, but lower priority tasks may be delayed or rejected
Solution Approach 1:
The patent introduces hold time as a preliminary parameter that specifies the maximum time a lower priority request is willing to wait. Before preemption occurs, the system checks whether the hold time has expired, allowing lower priority tasks to complete if they can finish within their designated hold time. This preliminary time allocation ensures real-time guarantees for high priority tasks while providing deterministic completion windows for low priority tasks.
Solution Approach 2:
The system provides feedback to requestors about preemption events and duration of availability information. When a lower priority request is preempted, the requestor receives notification and can adjust their request parameters. This feedback mechanism allows the system to maintain real-time guarantees while giving lower priority tasks a chance to resubmit with adjusted parameters that fit within available time windows.
3Productivity
If preemption is implemented to ensure high priority execution, then resource sharing efficiency improves, but resource thrashing increases
Solution Approach 1:
The patent applies preliminary action by implementing hold time checking before allowing preemption. The system determines whether a lower priority request can complete within its hold time before preempting it. This preliminary assessment prevents unnecessary preemptions and reduces resource thrashing by allowing lower priority tasks to complete when they can finish within their designated time windows, thereby improving overall resource sharing efficiency.
Solution Approach 2:
The system uses feedback mechanisms to notify requestors of preemption events and provide duration of availability information. This feedback allows requestors to adjust their request parameters and reduce the frequency of preemption cycles, thereby reducing resource thrashing while maintaining efficient resource sharing for critical high priority tasks.
4Loss of time
If a priority-aware queue with preemption is used, then request execution timing is improved, but system complexity increases
Solution Approach 1:
The patent segments the request queue into multiple priority levels or classes. Each priority level has its own queue or waiting area, and the system manages transitions between levels through structured preemption protocols. This segmentation simplifies the overall management complexity by dividing the complex priority-based scheduling into manageable hierarchical levels, while still achieving precise request execution timing through the preemption mechanism.
Data Source
AI summary
In an example, a method includes adding a first request from a first requestor to a queue for a shared resource, where the first request has a first priority. The method includes providing the first request to the shared resource from the queue. The method includes processing the first request at the shared resource. The method includes adding a second request from a second requestor to the queue for the shared resource, where the second request has a second priority that is higher than the first priority. The method includes preempting the processing of the first request and notifying the first requestor of the preemption, where notifying the first requestor of the preemption includes providing the first requestor with a duration of availability for the shared resource. The method includes providing the second request to the shared resource from the queue and processing the second request at the shared resource.


