Kernel Thread Pool Synchronization for Work Dispatch

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional multi-threading techniques in computer systems face overhead issues when spawning threads for small tasks and complicate inter-process communication, leading to inefficient resource usage and complex message delivery mechanisms.

Innovation Solution

Implementing a thread pool within the operating system kernel to manage a collection of already spawned threads, which can be dispatched to applications for work items and event processing, reducing the need for constant thread recreation and maintaining dedicated threads for message delivery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional multi-threading techniques are used to spawn threads for small tasks, then thread functionality is provided, but overhead and resource usage increase

Engineering Contradiction:
Improvethread functionalityVSAvoidoverhead and resource usage
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent pre-spawns a pool of worker threads in advance and keeps them ready in the kernel, so when small tasks need to be executed, pre-existing threads can be immediately assigned without the overhead of spawning new threads at runtime

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a universal thread pool where a small set of kernel-managed worker threads can handle multiple different tasks and serve multiple applications, replacing the need for each application to spawn its own dedicated threads for every task

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Adaptability or versatility

If traditional multi-threading techniques are used for inter-process communication, then message delivery is enabled, but communication complexity increases

Engineering Contradiction:
Improvemessage delivery capabilityVSAvoidcommunication mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces the kernel as an intermediary that manages a shared message queue and coordinates communication between threads. The kernel acts as a mediator that handles message routing, queue management, and thread coordination, simplifying the communication mechanism for applications

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent combines message delivery, event notification, and task coordination into a single unified queue structure managed by the kernel, allowing multiple communication functions to be handled through one integrated mechanism rather than separate systems

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11048562B2Multi-thread synchronization primitive
Publication Date: 2021.06.29 APPLE INC
  • US11048562B2 patent drawing
  • US11048562B2 patent drawing
  • US11048562B2 patent drawing

AI summary

Techniques are disclosed relating to efficiently handling execution of multiple threads to perform various actions. In some embodiments, an application instantiates a queue and a synchronization primitive. The queue maintains a set of work items to be operated on by a thread pool maintained by a kernel. The synchronization primitive controls access to the queue by a plurality of threads including threads of the thread pool. In such an embodiment, a first thread of the application enqueues a work item in the queue and issues a system call to the kernel to request that the kernel dispatch a thread of the thread pool to operate on the first work item. In various embodiments, the dispatched thread is executable to acquire the synchronization primitive, dequeue the work item, and operate on it.