Task Scheduler Collections for Resource Contention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The contention among processing resources in a computer system with multiple processing resources reduces efficiency and limits scalability, as existing task schedulers struggle to effectively allocate tasks across increasing numbers of resources.
Innovation Solution
The implementation of a scheduler with scheduling collections and virtual processors that map tasks onto hardware threads based on execution metrics, creating a search order to minimize contention and optimize resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple processing resources are used to execute tasks, then productivity increases, but resource contention increases and reduces efficiency
Solution Approach 1:
The patent segments the single global task queue into multiple scheduling collections, each associated with a specific processing resource. This segmentation reduces contention by allowing processing resources to search within their dedicated collections rather than competing for a shared queue, thereby maintaining high productivity while improving resource allocation efficiency.
Solution Approach 2:
The patent introduces a scheduler as an intermediary component that manages the distribution of tasks to processing resources. The scheduler creates and maintains scheduling collections that act as intermediaries between the task queue and processing resources, coordinating resource allocation to reduce direct contention and improve overall system efficiency.
2Productivity
If the number of processing resources increases, then productivity improves, but scalability is limited due to increased contention
Solution Approach 1:
By segmenting the scheduling structure into multiple independent scheduling collections that can be dynamically associated with processing resources, the system can scale to accommodate increasing numbers of resources. Each collection can be independently managed and associated with specific resources, allowing the system to adapt to varying resource counts without proportionally increasing contention.
Solution Approach 2:
The patent transitions from a single-dimensional global queue structure to a multi-dimensional structure where tasks are organized into multiple scheduling collections that can be mapped to processing resources in various configurations. This dimensional change enables flexible scaling by allowing resources to be associated with specific collections based on workload characteristics, improving adaptability as the system grows.
3Device complexity
If a global task queue is used for all processing resources, then device complexity is reduced, but resource contention increases
Solution Approach 1:
The patent segments the global task queue into multiple scheduling collections, each potentially associated with specific processing resources. While this increases structural complexity slightly, it dramatically improves resource utilization efficiency by reducing contention, as processing resources search within their associated collections rather than competing for a single global queue.
Solution Approach 2:
The patent implements dynamic association between scheduling collections and processing resources, allowing the system to adapt the mapping based on workload characteristics and resource availability. This dynamic approach balances the complexity of managing multiple collections with the benefit of reduced contention, as the system can optimize associations to maintain high productivity while managing structural complexity.
Data Source
Figure 1
Figure 2~3B
Figure 4
AI summary
A scheduler in a process of a computer system includes a respective scheduling collection for each scheduling node in the scheduler. The scheduling collections are mapped into at least a partial search order based on one or more execution metrics. When a processing resource in a scheduling node becomes available, the processing resource first attempts to locate a task to execute in a scheduling collection corresponding to the scheduling node before searching other scheduling collections in an order specified by the search order.