CPU Scheduler Fairness Using Runtime Credits and Penalties

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computers face challenges in fairly allocating CPU resources among multiple software applications, users, and organizations, leading to potential disparities in computing performance and user satisfaction.

Innovation Solution

Implementing a scheduler thread that utilizes estimated and actual processor runtimes to manage task scheduling, ensuring fair allocation of CPU time by maintaining credits and penalties for different entities, thus balancing CPU usage across users, groups, and organizations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If CPU resources are shared among multiple software applications and users, then hardware resource utilization is improved, but computing fairness deteriorates

Engineering Contradiction:
Improvehardware resource utilizationVSAvoidcomputing fairness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The scheduler thread implements a feedback mechanism by continuously monitoring actual processor runtimes and comparing them against estimated runtimes. It maintains running tallies of credits and penalties for each user/group/organization based on the difference between estimated and actual runtimes, and uses this feedback to adjust task scheduling decisions, ensuring fair CPU time allocation while maintaining high resource utilization

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically adjusts scheduling policies based on real-time performance data. The scheduler thread updates credit and penalty tallies continuously as tasks complete, and modifies future scheduling decisions based on accumulated performance information, allowing the system to adapt to varying workload patterns and maintain computing fairness across different entities

Inventive Principle:
Principle #15Dynamics

2Reliability

If a scheduler thread implements complex scheduling policies with credit and penalty tracking, then computing fairness is improved, but device complexity increases

Engineering Contradiction:
Improvecomputing fairnessVSAvoidscheduling policy complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The scheduling policy is segmented into distinct conceptual components: credit tracking for estimated runtime, penalty tracking for actual runtime, and a selection mechanism that chooses tasks based on these metrics. This segmentation allows the complex fairness enforcement to be broken down into manageable, modular operations that the scheduler thread executes systematically

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The scheduler thread autonomously maintains the credit and penalty tallies for all users, groups, and organizations without external intervention. The system self-regulates by automatically comparing estimated versus actual runtimes, updating standings, and making scheduling decisions based on accumulated data, reducing the need for complex external management

Inventive Principle:
Principle #25Self-service

3Measurement precision

If estimated and actual processor runtimes are tracked for all tasks, then scheduling accuracy is improved, but loss of time increases

Engineering Contradiction:
Improvescheduling accuracyVSAvoidtime for runtime tracking
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary estimation of processor runtime for tasks before they are scheduled. By establishing expected execution times in advance and comparing them against actual runtimes after completion, the system achieves accurate scheduling metrics without requiring continuous monitoring during execution, thereby minimizing time overhead

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20250390816A1Computing Fairness
Publication Date: 2025.12.25 CROWDSTRIKE
  • US20250390816A1 patent drawing
  • US20250390816A1 patent drawing
  • US20250390816A1 patent drawing

AI summary

Estimated and actual processor runtimes improve computer functioning in fairly sharing computing resources. Today's computers and cloud-based services serve many users and many software applications sharing CPU resources. An operating system thus implements a scheduling policy that fairly allocates CPU time. A scheduler thread implements the scheduling policy based on estimated processor runtimes, and actual processor runtimes, associated with tasks. The operating system may maintain running tallies or totals for a user/group/organization based on credits (e.g., the estimated processor runtimes) and/or on penalties (e.g., the actual processor runtimes). The scheduler thread may select tasks for worker threads based on the credits and/or the penalties, thus ensuring that no user/group/organization unfairly consumes CPU time.