Dual Scheduler Time Partitioning for Real-Time Thread Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for distributing computation time in computer systems, such as priority and time slice methods, fail to guarantee timely reaction to external events and efficient allocation of computation time for threads with real-time requirements and those needing minimum allocation.

Innovation Solution

A method that assigns threads to multiple time partitions, with a primary scheduler allocating time slices to these partitions and a secondary scheduler dynamically allocating computation time based on thread priorities, ensuring rapid reaction to external events and redistributing unused computation time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If priority method is used to allocate computation time, then high-priority threads can be executed promptly, but low-priority threads may never become computing and real-time requirements cannot be guaranteed

Engineering Contradiction:
Improveresponse speed of high-priority threadsVSAvoidguarantee of computation time allocation
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent segments the computation time allocation into two distinct phases: a deterministic phase that guarantees minimum time slices for real-time threads, and a competitive phase where remaining time is allocated based on priority. This segmentation resolves the contradiction by ensuring both real-time guarantees and priority-based responsiveness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic adjustment of time slice allocations based on system state. The deterministic time slices are dynamically assigned to meet real-time requirements, while the competitive phase dynamically adjusts to priority changes and thread availability, resolving the static nature of traditional priority methods.

Inventive Principle:
Principle #15Dynamics

2Reliability

If time slice method is used to allocate computation time, then computation time can be guaranteed for all threads, but reaction to external events is delayed due to fixed time slice duration

Engineering Contradiction:
Improveguarantee of computation time allocationVSAvoidreaction speed to external events
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent segments the time slice into deterministic and competitive portions. The deterministic portion provides guaranteed time allocation for real-time threads, while the competitive portion allows preemptive scheduling when external events occur, thus resolving the contradiction between guaranteed allocation and rapid response.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements periodic scheduling with deterministic time slices that recur at fixed intervals, ensuring real-time threads receive guaranteed execution opportunities. Between these periodic allocations, the competitive phase can intervene for urgent events, combining periodic reliability with event-driven responsiveness.

Inventive Principle:
Principle #19Periodic action

3Reliability

If fixed time slice is allocated to each thread, then computation time can be predicted, but unused computation time cannot be redistributed to other threads

Engineering Contradiction:
Improvepredictability of computation timeVSAvoidefficiency of computation time utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments computation time into deterministic (predictable) and competitive (redistributable) portions. The deterministic portion maintains predictability for real-time threads, while the competitive portion captures unused time and redistributes it to waiting threads, resolving the contradiction between predictability and efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent recovers unused computation time from threads that complete their work early in their time slices. This recovered time is then made available in the competitive phase for redistribution to other waiting threads, preventing waste and improving overall system productivity while maintaining deterministic guarantees.

Inventive Principle:
Principle #34Discarding and recovering

4Adaptability or versatility

If multiple schedulers are introduced to manage time partitions, then computation time can be allocated more flexibly, but system complexity increases

Engineering Contradiction:
Improveflexibility of computation time allocationVSAvoidcomplexity of scheduling system
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the scheduling function into two distinct schedulers: one for deterministic time slice allocation and another for competitive time allocation. This segmentation provides flexibility in handling different thread requirements while maintaining clear, separate responsibilities that reduce overall system complexity compared to a single monolithic scheduler.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a time partition as an intermediary layer between threads and the scheduling system. This partition structure mediates the allocation process, allowing flexible time management while simplifying the scheduler's decision-making by working with aggregated thread groups rather than individual threads directly.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8695004B2Method for distributing computing time in a computer system
Publication Date: 2014.04.08 SYSGO
  • US8695004B2 patent drawing
  • US8695004B2 patent drawing
  • US8695004B2 patent drawing

AI summary

The invention relates to a method for distributing computing time in a computer system on which run a number of partial processes or threads to which an assignment process or scheduler assigns computing time as required, priorities being associated with individual threads and the assignment of computing time being carried out according to the respective priorities. According to said method, the individual threads are respectively associated with a number of time priority levels. A first time priority level contains threads to which computing time is assigned as required at any time. A first scheduler respectively allocates a time slice to the individual time priority levels, and respectively activates one of the time priority levels for the duration of the time slice thereof. A second scheduler monitors the threads of the first time priority level and the threads of the respectively activated time priority level, and assigns computing time to said threads according to the priorities thereof.