IP Library Granted Patent US 8,626,806
Granted Patent B2
US 8,626,806 · App. 13/449,049 · Granted Jan 7, 2014

Method and system for managing execution of virtual applications

Inventors: Stefan I. Larimore (Redmond, WA); Kenji C. Obata (Seattle, WA); Mark Jeremy Zeller (Seattle, WA)
Assignee: Code Systems Corporation
G06F17/30233G06F21/53G06F2212/152
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 8,626,806
App. No.
13/449,049
Granted
Jan 7, 2014
Kind
B2
Abstract

A system and method for directing download and execution of an application. A runtime engine receives an identifier of a block of shared memory from a directing process. The shared memory stores a map indicating which portions of an application file have been stored in a local copy of the application file. The runtime engine also receives an instruction from the directing process to execute the local copy when the local copy stores less than the entire application file. As the application executes, the runtime engine identifies requests from the application to access portions of the local copy and uses the map to determine whether the requested portions have been stored in the local copy. If the requested portions are not stored in the local copy, the runtime engine prevents the executing application from accessing the local copy until the map indicates the requested portions have been stored therein.

Claims (16)

1. A computer-implemented method for use with a virtual runtime engine, the method being performed by a directing process, the method comprising:

instructing the virtual runtime engine separate from the directing process to execute a virtual application file to thereby initiate execution of a virtual application at least partially implemented by the virtual application file, the virtual application executing on an operating system that maintains a reference count for each named kernel object, the reference count indicating how many objects have references to the named kernel object, wherein when the virtual application begins executing, a first thread begins executing, a sentinel object that is a named kernel object is created, and the first thread has a reference to the sentinel object;

allocating a block of shared memory, the virtual runtime engine being configured to access the identified block of shared memory;

pausing execution of the virtual application by storing in the block of shared memory an indication that execution of the virtual application is to be paused, the virtual runtime engine being configured to read the indication that execution of the virtual application is to be paused and after the reading thereof, prevent the virtual application from accessing the virtual application file;

resuming execution of the virtual application by storing in the block of shared memory an indication that execution of the virtual application is to be resumed, the virtual runtime engine being configured to read the indication that execution of the virtual application is to be resumed and after the reading thereof, allow the virtual application to access the virtual application file; and

detecting execution of the virtual application has terminated, the detecting comprising detecting the sentinel object has a reference count equal to zero.

2. The method of claim 1 , wherein pausing execution of the virtual application further comprises triggering a signal event detectable by the virtual runtime engine, the virtual runtime engine being configured to detect the signal event and in response thereto, read the indication stored in the block of shared memory that execution of the virtual application is to be paused.

3. The method of claim 1 , wherein resuming execution of the virtual application further comprises triggering a signal event detectable by the virtual runtime engine, the virtual runtime engine being configured to detect the signal event and in response thereto, read the indication stored in the block of shared memory that execution of the virtual application is to be resumed.

4. The method of claim 1 , further comprising:

receiving an instruction from a user or another process separate from the virtual runtime engine and the directing process to pause execution of the virtual application and in response thereto, pausing execution of the virtual application.

5. The method of claim 1 , further comprising:

receiving an instruction from a user or another process separate from the virtual runtime engine and the directing process to resume execution of the virtual application and in response thereto, resuming execution of the virtual application.

6. The method of claim 1 , further comprising:

initiating a session with the virtual runtime engine, a session identifier being associated with the session; and

passing the session identifier to the virtual runtime engine, the virtual runtime engine being configured to use the session identifier to locate the block of shared memory.

7. The method of claim 1 , wherein as the virtual application executes, one or more other threads are created and each begin executing, each of the one or more other threads having a reference to the sentinel object.

Assignments (3)
ADDRESS CHANGE Recorded Nov 10, 2015
From: CODE SYSTEMS CORPORATION
To: CODE SYSTEMS CORPORATION
Reel/Frame 037084/0283 →
CHANGE OF ADDRESS Recorded May 28, 2015
From: CODE SYSTEMS CORPORTATION
To: CODE SYSTEMS CORPORATION
Reel/Frame 035794/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2012
From: LARIMORE, STEFAN I.; OBATA, KENJI C.; ZELLER, MARK JEREMY
To: CODE SYSTEMS CORPORATION
Reel/Frame 028061/0385 →
Continuity (3)
Division 12876085 · Sep 3, 2010
Provisional Application 61361373 · Jul 2, 2010
Related Publication 20120203807A1 · Aug 9, 2012