Lock Queue for Shared Resource Access Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current resource management schemes in systems with shared resources often lead to resource starvation and inefficient utilization, particularly when multiple operations require exclusive access to limited devices, resulting in blocked or idle resources.

Innovation Solution

The implementation of lock queues to manage access to shared resources, where operations are associated with locks in a queue, ensuring that access is granted based on the order of requests, allowing for atomic access and efficient allocation of resources across categories.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If exclusive access is granted to a fixed number of devices for each operation, then resource allocation is simplified and reliability is improved, but resource utilization deteriorates and resource starvation occurs

Engineering Contradiction:
Improveresource allocation reliabilityVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic resource allocation where operations can acquire and release devices dynamically during execution. Instead of static pre-allocation, the system allows operations to request devices when needed and release them when complete, enabling the resource pool to adapt to changing operational needs and improving overall utilization while maintaining allocation reliability through controlled access mechanisms.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent uses a queue system where operations are registered in advance with the resource manager before execution. This preliminary registration allows the system to plan and coordinate device allocation ahead of time, ensuring reliable allocation while preventing resource starvation by maintaining an ordered waiting list that guarantees fair access to all registered operations.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all devices are allocated to one operation initially, then that operation can execute without interruption, but other operations are starved or blocked

Engineering Contradiction:
Improveoperation execution reliabilityVSAvoidoperation accessibility
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent implements a queue-based preliminary registration system where all operations are registered with the resource manager before execution begins. This creates an ordered list of pending operations that ensures fair access to devices. When devices become available, they are allocated to the next operation in the queue, preventing starvation while maintaining reliable execution for each operation.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If devices are allocated to multiple operations simultaneously, then resource utilization improves, but device complexity and access control complexity increase

Engineering Contradiction:
Improveresource utilizationVSAvoidaccess control complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a resource manager as an intermediary between operations and devices. This mediator component handles all device allocation and release operations, maintaining a centralized view of device availability and operation priorities. By funneling all access requests through this single intermediary, the system enables multiple operations to use devices simultaneously while keeping access control logic centralized and manageable, preventing complexity from proliferating across the entire system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7454579B1Managing access to shared resources
Publication Date: 2008.11.18 EMC IP HLDG CO LLC
  • US7454579B1 patent drawing
  • US7454579B1 patent drawing
  • US7454579B1 patent drawing

AI summary

Managing access to a shared resource includes receiving a request indicating that an operation requires access to the shared resource, associating the operation with a lock in a lock queue that is associated with the shared resource, and determining whether the shared resource is accessible to the operation.