Task Scheduler for Multi-Core Processor Rescheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-core processor systems, existing task scheduling methods fail to optimally assign tasks across processing cores, leading to inefficiencies and potential system degradation due to non-optimal task distribution, especially in systems with heterogeneous cores and unpredictable workloads.
Innovation Solution
A method and apparatus for rescheduling tasks based on the states of processing cores and task queues, using a scheduler to determine and execute task rescheduling by moving tasks from one queue to another, optimizing task distribution and preventing system efficiency degradation by predicting and addressing bottlenecks early on.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If tasks are assigned to processing cores using existing scheduling methods, then tasks can be executed, but optimal task distribution is not achieved leading to system inefficiency
Solution Approach 1:
The scheduler dynamically adjusts task distribution by monitoring processing core states and executing rescheduling operations when suboptimal conditions are detected. The system transitions from static initial scheduling to dynamic adaptive scheduling, allowing task queues to be reassigned based on real-time core performance states, workload characteristics, and system conditions.
Solution Approach 2:
The scheduling system implements feedback mechanisms by continuously monitoring processing core states and using this information to determine whether rescheduling should be executed. The scheduler evaluates system state metrics and uses this feedback to make intelligent decisions about task redistribution, creating a closed-loop control system that adapts to changing conditions.
2Productivity
If tasks are statically assigned to processing cores, then scheduling is simple, but task distribution becomes suboptimal causing system degradation
Solution Approach 1:
The system performs rescheduling only partially - not continuously or for all tasks, but selectively based on detected suboptimal conditions. The scheduler executes rescheduling operations only when specific criteria are met, such as when processing core states indicate suboptimal task distribution, thereby reducing unnecessary scheduling overhead while still achieving optimal task placement when needed.
Solution Approach 2:
The scheduler performs preliminary evaluation of processing core states and task characteristics before executing rescheduling operations. By assessing system conditions in advance and determining whether rescheduling is warranted, the system avoids impulsive scheduling decisions and ensures that rescheduling actions are taken only when they will improve overall system efficiency.
3Productivity
If rescheduling is executed frequently, then optimal task distribution is maintained, but system overhead increases
Solution Approach 1:
The system takes preliminary anti-action by detecting suboptimal scheduling conditions and executing rescheduling before significant performance degradation occurs. By monitoring processing core states and identifying suboptimal distributions early, the system prevents efficiency loss rather than continuously correcting it, thereby reducing the frequency and overhead of rescheduling operations.
Solution Approach 2:
The scheduler changes system parameters by adjusting task queue assignments based on processing core states and workload characteristics. Rather than maintaining a fixed scheduling configuration, the system dynamically modifies task-to-core mappings in response to changing system conditions, achieving adaptability without requiring continuous rescheduling.
Data Source
AI summary
An apparatus includes a plurality of processing cores, and a memory including a plurality of task queues corresponding to the plurality of processing cores, respectively, wherein at least one processing core of the plurality of processing cores is configured, by executing a scheduler, to determine execution of task rescheduling, based on states of the plurality of processing cores, tasks stored in the plurality of task queues, and at least one reference value, and, when the task rescheduling is executed, move a first task stored in a first task queue to a second task queue.


