Heuristics-Based Task Scheduling for Event-Driven Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesystem efficiencyVSAvoidresource consumption
Core Design Contradiction:
ProductivityVSLoss of energy

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.

Inventive Principle:
Principle #19Periodic action

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.

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidQoS compliance
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #3Local quality

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvetask responsivenessVSAvoidmemory consumption
Core Design Contradiction:
SpeedVSQuantity of substance

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8261275B2Method and system for heuristics-based task scheduling
Publication Date: 2012.09.04 ORACLE AMERICAN INC
  • US8261275B2 patent drawing
  • US8261275B2 patent drawing
  • US8261275B2 patent drawing

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.