Dynamic Binary Translation Mutex Lock Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Dynamic binary translation struggles to execute non-native code on host computer systems, particularly with mutex-related system calls, due to differences in kernel OS platforms, making it difficult to simulate mutex locks across architectures.

Innovation Solution

The method involves translating guest executable binaries into a translated executable binary by mapping mutex locks to a compound mutex lock data structure, which includes a pointer to both the native and host mutex lock data structures, enabling simulation of mutex operations across architectures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If dynamic binary translation is used to execute non-native binaries on a host computer system, then the capability to run code across different architectures is improved, but difficulties arise in handling mutex-related system calls due to kernel OS platform differences

Engineering Contradiction:
Improvecapability to run non-native codeVSAvoidcomplexity in handling mutex syscalls
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a compound mutex lock data structure that acts as an intermediary between the guest mutex lock and the host kernel mutex lock. This compound structure contains both the guest mutex lock data and the host mutex lock data, enabling the dynamic binary translator to handle mutex-related system calls by translating guest mutex operations into host kernel mutex operations through this intermediary structure, thereby resolving the platform compatibility issue.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the mutex lock data structure is duplicated and modified to pass to the kernel, then translation speed is improved, but atomicity requirements for mutex locks cannot be satisfied

Engineering Contradiction:
Improvetranslation speedVSAvoidatomicity of mutex operations
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent merges the guest mutex lock data structure and the host mutex lock data structure into a single compound mutex lock data structure. This unified structure ensures that mutex operations maintain atomicity by treating both guest and host mutex data as integrated components, while still enabling efficient translation through the compound structure's unified memory layout and access patterns.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If kernel help is used to affect LWPs belonging to other processes, then correctness of mutex operations is improved, but implementation complexity increases significantly

Engineering Contradiction:
Improvecorrectness of mutex operationsVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The compound mutex lock data structure serves as an intermediary that encapsulates the complexity of kernel interactions. By maintaining both guest and host mutex lock data within this single structure, the patent enables correct mutex operations across process boundaries through the host kernel while shielding the translation layer from the full complexity of kernel implementation details.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8346531B2Handling mutex locks in a dynamic binary translation across heterogeneous computer systems
Publication Date: 2013.01.01 ORACLE AMERICAN INC
  • US8346531B2 patent drawing
  • US8346531B2 patent drawing
  • US8346531B2 patent drawing

AI summary

A method for executing non-native binaries on a host computer architecture comprises receiving a guest executable binary encoded on a computer readable medium. The guest executable binary is executable on a first computer architecture. Moreover, the guest executable binary includes a mutex lock encoded instructions for implementing a mutex lock. The guest executable binary is then executed on the host computer architecture by first translating the guest executable binary to a translated executable binary. The encoded instructions for implementing a mutex lock are translated by mapping the mutex lock to an instance of a compound mutex lock data structure. A computer system implementing methods for executing non-native binaries on a host computer architecture is also provided.