Dynamic Priority Queue for Task Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In task pipelines, high priority tasks often idle due to insufficient input from feeder tasks, leading to inefficient resource allocation and waste, as processor time is split between tasks without dynamic adjustment based on workload availability.
Innovation Solution
Implement a system where the priority of tasks is dynamically adjusted by monitoring the work queue, increasing the processing time for feeder tasks when the high priority task is idle and reducing it when ample input is available, allowing for optimal resource allocation and preventing unnecessary switching between tasks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If processor time is split between all tasks without dynamic adjustment, then high priority tasks can be executed, but high priority tasks idle due to insufficient input from feeder tasks
Solution Approach 1:
The system dynamically adjusts the priority of feeder tasks based on real-time monitoring of work queue depth. When the high priority task is idle or the queue is empty, feeder task priority is increased to ensure continuous input supply. When the queue has sufficient work, feeder task priority is reduced. This dynamic priority adjustment resolves the contradiction by adapting resource allocation to actual workload conditions.
Solution Approach 2:
The system implements a feedback mechanism where the state of the work queue and the idle status of high priority tasks are continuously monitored. This feedback information is used to adjust the scheduling priority of feeder tasks, creating a closed-loop control system that prevents high priority tasks from idling by ensuring adequate input availability.
2Productivity
If processor time is allocated to high priority tasks, then they can process work faster, but feeder tasks cannot generate input fast enough causing resource wastage
Solution Approach 1:
The system dynamically reallocates processor time between high priority tasks and feeder tasks based on work queue depth. When the queue is empty or shallow, more processor time is allocated to feeder tasks to generate input. When the queue has sufficient depth, processor time is allocated to high priority tasks for faster processing. This dynamic time allocation eliminates resource wastage by matching processing capacity with input availability.
Solution Approach 2:
The system changes the scheduling parameter (task priority) of feeder tasks based on the depth of the work queue. When queue depth is low, feeder task priority is increased to ensure adequate input generation. When queue depth is sufficient, feeder task priority is decreased. This parameter change resolves the contradiction between processing speed and resource efficiency.
3Device complexity
If static priority queues are used, then task scheduling is simple, but they do not adapt to changing workload demands
Solution Approach 1:
The system transitions from static to dynamic priority queues where task priorities are adjusted in real-time based on work queue depth and task idle status. This dynamic approach maintains relative simplicity by building upon existing priority queue structures while adding adaptive priority adjustment logic that responds to changing workload demands.
Solution Approach 2:
The scheduling system automatically adjusts task priorities based on monitored system state without requiring external intervention. The work queue depth and task idle status are self-monitored, and priority adjustments are self-executed, enabling the system to adapt to workload changes autonomously while maintaining operational simplicity.
Data Source
AI summary
Apparatuses, systems, and techniques to optimize processor resources at a user-defined level. In at least one embodiment, priority of one or more tasks are adjusted to prevent one or more other dependent tasks from entering an idle state due to lack of resources to consume.


