Heuristics-Based Task Scheduling for Event-Driven Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current operating systems lack an efficient mechanism for scheduling tasks based on user-defined descriptions and quality of service (QoS) requirements, leading to suboptimal resource allocation and task prioritization in event-driven systems.
Innovation Solution
A heuristics-based task scheduling system that uses a task engine to receive event notifications, determine task predicates, and assign priorities using a heuristics policy, allowing tasks to be scheduled and executed based on predefined actions and parameters, ensuring efficient resource utilization and quality of service compliance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional polling schemes are used for task execution, then tasks can be periodically awakened and executed, but system efficiency deteriorates due to unnecessary wake-ups and resource consumption
Solution Approach 1:
The patent implements event-driven periodic action where tasks are awakened only when specific events occur, replacing traditional continuous polling. The task engine monitors for events that satisfy task predicates, and tasks transition from sleeping to executing states only when relevant events are detected, eliminating unnecessary periodic wake-ups and resource consumption.
Solution Approach 2:
The task engine automatically manages task lifecycle including awakening, execution, and sleeping states based on event satisfaction. Tasks are self-managed through the event-driven mechanism where the system autonomously determines when tasks should execute based on predicate satisfaction, without requiring external polling or manual intervention.
2Productivity
If tasks are executed without heuristic-based prioritization, then all tasks are treated equally, but resource allocation becomes suboptimal and QoS requirements cannot be met
Solution Approach 1:
The patent applies local quality by assigning different priority levels to different tasks based on their specific QoS requirements and heuristic policies. Each task receives customized priority treatment rather than uniform handling, allowing critical tasks to receive preferential resource allocation while less critical tasks use standard resources, thereby optimizing overall system performance and QoS compliance.
Solution Approach 2:
The task engine dynamically changes task priority parameters based on heuristic policies and current system state. Priorities are not fixed but are adjusted according to task characteristics, resource availability, and QoS requirements, enabling flexible and adaptive resource allocation that responds to changing system conditions.
3Speed
If all tasks are kept in ready state for immediate execution, then task responsiveness is improved, but memory consumption increases due to maintaining all tasks in memory
Solution Approach 1:
The patent implements dynamic task state management where tasks transition between sleeping and ready states based on event occurrence. Tasks are kept in sleeping state (low memory footprint) until an event satisfies their predicate, at which point they transition to ready state (higher memory footprint) for immediate execution. This dynamic approach balances memory consumption with task responsiveness.
Solution Approach 2:
Tasks are pre-configured with their predicates and execution parameters while in sleeping state, so that when an event occurs, the task can immediately execute without requiring full initialization. This preliminary preparation allows tasks to maintain a compact representation in memory while still being ready for rapid execution when needed.
Data Source
AI summary
A computer readable storage medium including executable instructions for heuristics-based task scheduling. Instructions include receiving a first event notification associated with a first event, where the first event is determined from the first event notification. Instructions further include determining whether a predicate for an action is satisfied by the first event, where the action predicate, the action, and an action parameter are associated with a task object in a task pool. Instructions further include obtaining the action parameter when the action predicate is satisfied by the first event, where a priority is assigned using a heuristics policy to the task object based on the action parameter. Instructions further include inserting the task object into a task queue using the assigned priority. The action associated with the task object is performed by an execution thread. The performance of the action is a second event associated with a second event notification.


