Class-Based Mutex Pool for Resource Bottleneck Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional mutex techniques often lead to bottlenecks and conflicts when multiple threads or processes access shared resources, as a single mutex object is overused or causes waiting scenarios, leading to inefficiencies in resource management.

Innovation Solution

Implementing class-based mutex objects, where shared resources are organized into classes, each with its own mutex object, reducing bottlenecks and conflicts by allowing multiple mutex objects to operate independently and in parallel.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single mutex object is used to protect all data structures, then resource management is simplified, but the mutex object becomes a bottleneck and reduces system productivity

Engineering Contradiction:
Improvemutex management complexityVSAvoidsystem throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent divides the single mutex object into multiple mutex objects organized in a mutex pool, where each mutex object can be independently acquired and released. This segmentation allows multiple threads to acquire different mutex objects simultaneously, eliminating the bottleneck of a single mutex object while maintaining simplified management through the pool structure.

Inventive Principle:
Principle #1Segmentation

2Productivity

If each data structure uses a separate mutex object, then access concurrency is improved, but the complexity of managing multiple mutex objects increases and conflicts may occur

Engineering Contradiction:
Improveaccess concurrencyVSAvoidmutex management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The mutex pool provides a universal interface for managing multiple mutex objects. Instead of each data structure having its own separate mutex management logic, the pool serves as a multi-functional manager that handles allocation, tracking, and coordination of all mutex objects, reducing overall system complexity while maintaining high concurrency.

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

3Productivity

If multiple mutex objects are used to protect different classes of resources, then bottlenecks are reduced, but the device complexity increases

Engineering Contradiction:
Improveresource access efficiencyVSAvoidmutex pool structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent organizes mutex objects into classes corresponding to different types of shared resources. Each mutex object in the pool is associated with a specific resource class, allowing threads to acquire only the mutex objects necessary for their specific operations. This local specialization reduces unnecessary contention and improves resource access efficiency while maintaining manageable complexity through class-based organization.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9176792B2Class-based mutex
Publication Date: 2015.11.03 APPLE INC
  • US9176792B2 patent drawing
  • US9176792B2 patent drawing
  • US9176792B2 patent drawing

AI summary

When different types of shared resources need mutex protection, the shared resources can be organized into classes. Each class of shared resources can have multiple types of resources. A mutex pool can store multiple mutex objects, each mutex object corresponding to a class of resources. The mutex object can be used to protect each shared resource in the corresponding class.