Thread Scheduling by Criticality and Processor Utilization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems face challenges in efficiently scheduling new threads based on their criticality levels, leading to suboptimal resource allocation and potential bottlenecks in processor utilization.

Innovation Solution

A method and system that identify the criticality level of a new thread and select an appropriate processor group based on both the thread's criticality and the existing utilization level of the group, increasing the assigned utilization level to ensure efficient execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If threads are scheduled based on traditional methods without criticality awareness, then the scheduling system is simple, but resource allocation becomes suboptimal and bottlenecks occur

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidscheduling system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a criticality level parameter to thread scheduling decisions. By changing the scheduling parameter from simple queue-based approaches to criticality-aware selection, the system optimizes resource allocation efficiency. The scheduler considers criticality levels when selecting processor groups, transforming the scheduling mechanism to handle different thread priorities effectively.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent segments processors into processor groups based on their utilization levels and criticality requirements. This segmentation allows the system to allocate resources more efficiently by matching critical threads with appropriate processor groups, reducing bottlenecks and improving overall productivity without requiring a completely new scheduling architecture.

Inventive Principle:
Principle #1Segmentation

2Reliability

If all threads are treated equally in scheduling, then the scheduler is simple, but critical threads do not receive prioritized resource access

Engineering Contradiction:
Improvecritical thread execution reliabilityVSAvoidscheduling algorithm complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies local quality by treating different threads differently based on their criticality levels. Instead of uniform treatment, the scheduler assigns different weights and priorities to threads based on their criticality, ensuring that critical threads receive prioritized resource access. This localized differentiation improves reliability for critical threads while maintaining overall system functionality.

Inventive Principle:
Principle #3Local quality

3Productivity

If processor groups are selected without considering utilization levels, then the selection process is simple, but resource allocation becomes suboptimal

Engineering Contradiction:
Improveprocessor utilization efficiencyVSAvoidutilization level monitoring complexity
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent implements feedback mechanisms where the scheduler continuously monitors and considers the utilization levels of processor groups when making scheduling decisions. This feedback loop ensures that the system adapts to changing resource availability and allocation patterns, optimizing processor utilization efficiency dynamically without requiring overly complex measurement systems.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8539494B2Method and system for scheduling threads
Publication Date: 2013.09.17 ORACLE INT CORP
  • US8539494B2 patent drawing
  • US8539494B2 patent drawing
  • US8539494B2 patent drawing

AI summary

A method for scheduling a new thread involves identifying a criticality level of the new thread, selecting a processor group according to the criticality level of the new thread and an existing assigned utilization level of the processor group to obtain a selected processor group, increasing an assigned utilization level of the selected processor group based on the new thread, and executing the new thread by the selected processor group.