Self-managed Mutex for Fair Resource Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current mutual exclusion objects, such as Mutex, do not provide fair queue management when multiple processes or threads require access to a shared resource, leading to unpredictable and potentially unfair access sequences without additional scheduling functionality.

Innovation Solution

A self-managed lock access method using a SMMutex, which includes both a lock and a wait position, allows for fair and exclusive access to shared resources by utilizing unique process identifiers and an algorithm to determine access order, eliminating the need for additional scheduling code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional mutual exclusion objects (Mutex) are used for resource access control, then exclusive access is provided, but fair queue management and predictable access sequences are not achieved

Engineering Contradiction:
Improveexclusive access controlVSAvoidfair queue management
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The mutual exclusion object is segmented into distinct functional components: a lock position for current access control and a wait position for queue management. This segmentation allows independent optimization of exclusive access (lock position) and fair scheduling (wait position), resolving the contradiction between reliable exclusion and ease of fair operation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A wait position acts as an intermediary structure between the lock position and the resource. Processes must pass through the wait position queue before reaching the lock position, providing automatic fair scheduling without requiring complex scheduling logic in the resource access code itself.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If additional scheduling functionality is added to achieve fair access sequences, then fair queue management is improved, but device complexity increases

Engineering Contradiction:
Improvefair access sequencingVSAvoidscheduling functionality
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The mutual exclusion object automatically manages the fair access queue through its intrinsic wait position structure. The system self-regulates access sequences without requiring external schedulers or additional complexity in the resource access code. Each process simply interacts with the SMMutex interface, and fairness emerges from the structure itself.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The scheduling functionality is merged directly into the mutual exclusion object structure. The wait position is integrated with the lock position, combining resource exclusion and fair scheduling into a single unified mechanism, thereby avoiding the complexity of separate scheduling components.

Inventive Principle:
Principle #5Merging (Combining)

3Device complexity

If traditional Mutex is used without wait position, then device complexity is reduced, but access fairness and predictability deteriorate

Engineering Contradiction:
Improvelock structureVSAvoidunpredictable access sequences
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The wait position enables preliminary queuing action before lock acquisition. Processes are pre-ordered in the wait position queue based on their arrival time or priority, ensuring predictable access sequences without requiring complex time-tracking mechanisms during resource execution.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11294737B2Self-managed lock access
Publication Date: 2022.04.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11294737B2 patent drawing
  • US11294737B2 patent drawing
  • US11294737B2 patent drawing

AI summary

An approach for providing exclusive access to a resource shared by a plurality of processes in a computer system. The approach includes a computer processor retrieving a process identifier for a first process attempting to access the resource, where the process identifier is uniquely assigned to each process of the plurality of processes requiring the resource with the computer system. The approach includes the computer processor using the process identifier for the first process and a mutual exclusion object that includes a lock position allowing exclusive access to the resource and a wait position for a next process to attain the lock position to provide exclusive access to the resource.