Reference Attribute Annotation for Concurrent Data Race Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Concurrent execution in computing systems with multiple processors can lead to data races due to unrestricted access to shared state, making it difficult to detect and solve these issues effectively.

Innovation Solution

An annotation mechanism is introduced for returned references from executable components, assigning a signifying attribute that indicates the absence of external references to an object graph, allowing for proper detection and management of access permissions, including the option to assign permissions like 'fresh' which allows the reference to be stored in any permission scope or isolated memory location.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If concurrent execution is implemented to improve processing efficiency, then productivity increases, but data races occur due to unrestricted access to shared state

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata race prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces permission annotations as an intermediary layer between concurrent tasks and shared state. These annotations act as mediators that automatically manage access control, allowing multiple tasks to execute concurrently while preventing data races through automated permission checking and enforcement.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary analysis of executable components to detect and annotate permission requirements before concurrent execution begins. By pre-identifying shared state and establishing permission rules in advance, the system enables safe concurrent access without runtime conflicts.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If permission annotations are added to manage access control, then data race prevention improves, but device complexity increases due to annotation overhead

Engineering Contradiction:
Improvedata race preventionVSAvoidannotation mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The annotation mechanism operates autonomously by automatically analyzing executable components, detecting shared state, and generating permission annotations without requiring manual intervention. This self-service approach reduces the perceived complexity for developers while maintaining robust permission management.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system transforms the abstract concept of access control into concrete, machine-checkable permission parameters through automated annotation. By converting high-level concurrency requirements into specific permission attributes, the system manages complexity through parameterization rather than complex control logic.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If automated permission detection is implemented, then ease of operation improves, but measurement precision decreases due to difficulty in detecting and reproducing data races

Engineering Contradiction:
Improvepermission management easeVSAvoiddata race detection accuracy
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The system performs preliminary static analysis of executable components before runtime to detect potential data races and establish permission annotations. By analyzing code structure, variable usage, and access patterns in advance, the system achieves precise detection without the limitations of runtime observation alone.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The annotation mechanism incorporates feedback loops that continuously monitor and refine permission annotations based on detected access patterns. When potential data races are identified, the system adjusts permissions and re-evaluates access control rules, improving detection precision through iterative refinement.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9971578B2Reference attribute annotation signifying no external reference
Publication Date: 2018.05.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9971578B2 patent drawing
  • US9971578B2 patent drawing
  • US9971578B2 patent drawing

AI summary

The annotation of a returned reference from an executable component to signify that there are no external references to the particular object graph referenced by the returned reference. If either 1) there are no input arguments to the executable component or 2) each input argument is either immutable or represents an object graph that has no external mutable references pointing into the object graph, and no internal mutable references that reference external objects, the particular attribute is assigned to the returned reference. Accordingly, if the returned reference is writable (as determined by evaluating the declaration code or the call code for the executable component), the returned reference is free to have whatever access permissions assigned to it, and may also be assigned to an isolated memory location, though such assignments will cause the returned reference to lose the particular attribute.