IP Library Granted Patent US 9,038,048
Granted Patent B2
US 9,038,048 · App. 13/189,263 · Granted May 19, 2015

Methods, systems, and media for protecting applications from races

Inventors: Junfeng Yang (New York, NY); Heming Cui (New York, NY); Jingyue Wu (New York, NY)
Assignee: The Trustees of Columbia University in the City of New York
G06F9/52
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 9,038,048
App. No.
13/189,263
Granted
May 19, 2015
Kind
B2
Abstract

Methods, systems, and media for protecting applications from races are provided. In some embodiments, methods for protecting applications from races are provided, the methods comprising: adding to at least one cycle of the application an update check to determine when an update to the application is to be made; adding an update engine to the application, wherein the update engine is configured to: receive an update plan that is based on an execution filter that specifies how operations of the application are to be synchronized; and cause synchronization operations to be added to the application based on the update plan that prevent the race from occurring.

Claims (30)

1. A method for protecting an application from a race, comprising:

adding to at least one cycle of the application an update check to determine when a software update to software of the application is to be made; and

adding an update engine to the application, wherein the update engine is configured to:

receive an update plan that is based on an execution filter that specifies how operations of the application are to be synchronized to filter out racy thread interleaving, wherein the execution filter is separated from source code of the application, and the execution filter can be downloaded and installed into the application to protect the application from the race during runtime without restart of the application, and wherein the update plan includes synchronization operations to enforce constraints described in the execution filter and information indicating where in the application to add the operations, and pre-conditions for installing the execution filter; and

cause the synchronization operations to be added to the application as part of a software update based on the update plan that prevent the race from occurring.

2. The method of claim 1 , further comprising adding a mechanism to prevent blocking calls from blocking updates.

3. The method of claim 1 , further comprising adding at least one slot function that adds the synchronization operations to the application based on the update plan.

4. The method of claim 1 , further comprising adding an instrumented copy of at least a part of the application that can be executed instead of the at least a part of the application in response to the update plan.

5. The method of claim 1 , wherein the execution filter controls execution order of at least two portions of the application.

6. The method of claim 1 , wherein the execution filter causes the execution of at least two portions of the application to be mutually exclusive.

7. The method of claim 1 , wherein the execution filter causes a single portion of the application to be unilaterally executed.

8. A method for protecting an application from a race, comprising:

executing in at least one cycle of the application an update check to determine when a software update to software of the application is to be made;

receiving an update plan that is based on an execution filter that specifies how operations of the application are to be synchronized to filter out racy thread interleaving, wherein the execution filter is separated from source code of the application, and the execution filter can be downloaded and installed into the application to protect the application from the race during runtime without restart of the application, and wherein the update plan includes synchronization operations to enforce constraints described in the execution filter and information indicating where in the application to add the operations, and pre-conditions for installing the execution filter; and

performing the synchronization operations as part of a software update based on the update plan that prevent the race from occurring.

9. The method of claim 8 , further comprising preventing blocking calls from blocking updates.

10. The method of claim 8 , further comprising adding the synchronization operations to the application based on the update plan.

11. The method of claim 8 , further comprising executing an instrumented copy of at least a part of the application instead of the at least a part of the application in response to the update plan.

12. The method of claim 8 , wherein the execution filter controls execution order of at least two portions of the application.

13. The method of claim 8 , wherein the execution filter causes the execution of at least two portions of the application to be mutually exclusive.

14. The method of claim 8 , wherein the execution filter causes a single portion of the application to be unilaterally executed.

15. A method for protecting an application from a race, comprising:

creating an execution filter that specifies how operations of an application are to be synchronized to filter out racy thread interleaving, wherein the execution filter is separated from source code of the application, and the execution filter can be downloaded and installed into the application to protect the application from the race during runtime without restart the application;

generating an update plan for updating the software of the application that is based on the execution filter, wherein the update plan includes synchronization operations to enforce the constrains described in the execution filter and information indicating where in the application to add the operations, and pre-conditions for installing the execution filter; and

causing the synchronization operations to be performed at the application as part of a software update based on the update plan that prevent the race from occurring.

16. The method of claim 15 , further comprising causing the synchronization operations to be added to the application based on the update plan.

17. The method of claim 15 , further comprising causing an instrumented copy of at least a part of the application to be executing instead of the at least a part of the application in response to the update plan.

18. The method of claim 15 , wherein the execution filter controls execution order of at least two portions of the application.

19. The method of claim 15 , wherein the execution filter causes the execution of at least two portions of the application to be mutually exclusive.

20. The method of claim 15 , wherein the execution filter causes a single portion of the application to be unilaterally executed.

Assignments (3)
CONFIRMATORY LICENSE Recorded Jun 8, 2016
From: COLUMBIA UNIVERSITY
To: AFRL/RIJ
Reel/Frame 038915/0372 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2012
From: YANG, JUNFENG; CUI, HEMING; WU, JINGYUE
To: THE TRUSTEES OF COLUMBIA UNIVERSITY IN THE CITY OF NEW YORK
Reel/Frame 027483/0779 →
CONFIRMATORY LICENSE Recorded Dec 23, 2011
From: COLUMBIA UNIVERSITY NEW YORK MORNINGSIDE
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 027439/0433 →
Continuity (2)
Provisional Application 61366900 · Jul 22, 2010
Related Publication 20120096449A1 · Apr 19, 2012