IP Library Granted Patent US 7,823,153
Granted Patent B1
US 7,823,153 · App. 11/240,966 · Granted Oct 26, 2010

System and method for detecting and logging in-line synchronization primitives in application program code

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,823,153
App. No.
11/240,966
Granted
Oct 26, 2010
Kind
B1
Abstract

A system, method, and computer-accessible medium for detecting and logging in-line synchronization primitives are disclosed. One or more in-line synchronization primitives in a computer program are programmatically detected during execution of the computer program. The one or more in-line synchronization primitives are stored in a log.

Claims (32)

1. A method comprising:

programmatically detecting one or more in-line synchronization primitives in a computer program during execution of the computer program using dynamic binary compilation to detect the one or more in-line synchronization primitives in the computer program during the execution of the computer program;

replacing each of the one or more in-line synchronization primitives in the computer program with a corresponding substitute synchronization primitive during execution of the computer program;

executing at least one of the substitute synchronization primitives in a manner visible to an operating system;

using the operating system to detect the execution of the at least one of the substitute synchronization primitives;

storing information indicative of each of the detected substitute synchronization primitives in a log, wherein the information comprises an execution order of each of the detected substitute synchronization primitives and a result of each of the detected substitute synchronization primitives;

determining that the execution of the computer program has failed at a point in time; and

using the log to resume the execution of the computer program from the point in time by replaying the execution of the computer program in a manner that guarantees the execution order and the results of each of the detected substitute synchronization primitives as stored in the log.

2. The method of claim 1 , further comprising:

intercepting the one or more in-line synchronization primitives during the execution of the computer program using dynamic binary compilation.

3. The method of claim 1 , wherein the one or more in-line synchronization primitives comprise atomic synchronization instructions which are invisible to an operating system.

4. A computer-accessible storage medium comprising program instructions, wherein the program instructions are computer executable to implement:

detecting one or more in-line synchronization primitives in a computer program during execution of the computer program using dynamic binary compilation to detect the one or more in-line synchronization primitives in the computer program during the execution of the computer program;

replacing each of the one or more in-line synchronization primitives in the computer program with a corresponding substitute synchronization primitive during execution of the computer program;

executing at least one of the substitute synchronization primitives in a manner visible to an operating system;

using the operating system to detect the execution of the at least one of the substitute synchronization primitives;

storing information indicative of each of the detected substitute synchronization primitives in a log, wherein the information comprises an execution order of each of the detected substitute synchronization primitives and a result of each of the detected substitute synchronization primitives;

determining that the execution of the computer program has failed at a point in time; and

using the log to resume the execution of the computer program from the point in time by replaying the execution of the computer program in a manner that guarantees the execution order and the results of each of the detected substitute synchronization primitives as stored in the log.

5. The computer-accessible storage medium of claim 4 , wherein the program instructions are further computer-executable to implement: intercepting the one or more in-line synchronization primitives during the execution of the computer program using dynamic binary compilation.

6. A system comprising:

a storage device;

a CPU; and

a memory coupled to the CPU, wherein the memory stores program instructions which are executable by the CPU to:

detect one or more in-line synchronization primitives in a computer program using dynamic binary compilation to detect the one or more in-line synchronization primitives in the computer program during execution of the computer program;

replace each of the one or more in-line synchronization primitives in the computer program with a corresponding substitute synchronization primitive during execution of the computer program;

execute at least one of the substitute synchronization primitives in a manner visible to an operating system;

use the operating system to detect the execution of the at least one of the substitute synchronization primitives;

store information indicative of each of the detected substitute synchronization primitives in a log on the storage device, wherein the information comprises an execution order of each of the detected substitute synchronization primitives and a result of each of the detected substitute synchronization primitives;

determine that the execution of the computer program has failed at a point in time; and

use the log to resume the execution of the computer program from the point in time by replaying the execution of the computer program in a manner that guarantees the execution order and the results of each of the detected substitute synchronization primitives as stored in the log.

7. The system of claim 6 , wherein the program instructions are further executable by the CPU to: intercept the one or more in-line synchronization primitives during the execution of the computer program using dynamic binary compilation.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →