IP Library Granted Patent US 8,930,894
Granted Patent B2
US 8,930,894 · App. 12/247,797 · Granted Jan 6, 2015

Method and system for executing an executable file

Inventors: John E. Zolnowsky (Milpitas, CA); George R. Cameron (Santa Cruz, CA); Blake A. Jones (Oakland, CA)
Assignee: Oracle America, Inc.
G06F17/30115G06F8/67
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,930,894
App. No.
12/247,797
Granted
Jan 6, 2015
Kind
B2
Abstract

A method for executing an executable file. The method includes executing instructions in the executable file by a first process, receiving a write request from a second process to write to the executable file, generating an anonymous file from the executable file in response to the write request, executing the anonymous file by the first process, and accessing the executable file by the second process.

Claims (43)

1. A method for executing an executable file, comprising:

executing original instructions in the executable file by a first process, wherein the executable file comprises a plurality of pages, and wherein executing instructions in the executable file comprises:

accessing an original vnode to obtain a reference to a page of the plurality of pages, wherein the original vnode comprises a reference to each page of the plurality of pages in main memory, a reference to the executable file in a file storage, and an instruction defining when to create an anonymous file;

accessing the page of the plurality of pages using the reference to the page from the original vnode, and

executing instructions from the page of the plurality of pages while the page is in main memory;

receiving a write request from a second process to write to the executable file;

generating, from the executable file in response to the write request, the anonymous file comprising the original instructions based on the instruction in the original vnode defining when to create the anonymous file;

executing the original instructions in the anonymous file by the first process;

modifying, after generating the anonymous file, the executable file by the second process to create modified instructions in the executable file; and

reclaiming file storage space storing the anonymous file after executing the anonymous file by the first process completes.

2. The method of claim 1 , wherein generating the anonymous file comprises:

generating an anonymous vnode from the original vnode;

removing an association of the original vnode with each page of the plurality of pages in main memory; and

re-associating each page of the plurality of pages with the anonymous vnode to create a plurality of re-associated pages, wherein executing the anonymous file comprises accessing at least one of the plurality of re-associated pages of the anonymous vnode.

3. The method of claim 2 , wherein generating the anonymous file further comprises:

loading each page of the plurality of pages into the main memory prior to re-associating each page of the plurality of pages.

4. The method of claim 2 , wherein each page of the plurality of pages in main memory is re-associated with the anonymous vnode.

5. The method of claim 2 , further comprising:

detecting a number of processes accessing the anonymous file based on the anonymous vnode,

wherein file storage space is reclaimed when the number of processes is equal to zero.

6. The method of claim 1 , wherein accessing the executable file by the second process comprises:

loading a page of the executable file into main memory; and

writing to the page of the executable file.

7. A non-transitory computer readable medium comprising computer readable program code embodied therein for causing a computer system to:

execute original instructions in an executable file by a first process, wherein the executable file comprises a plurality of pages, and wherein executing instructions in the executable file comprises:

accessing an original vnode to obtain a reference to a page of the plurality of pages, wherein the original vnode comprises a reference to each page of the plurality of pages in main memory, a reference to the executable file in a file storage, and an instruction defining when to create an anonymous file;

accessing the page of the plurality of pages using the reference to the page from the original vnode, and

executing instructions from the page of the plurality of pages while the page is in main memory;

receive a write request from a second process to write to the executable file;

generate, from the executable file in response to the write request, the anonymous file comprising the original instructions based on the instruction in the original vnode defining when to create the anonymous file;

execute the original instructions in the anonymous file by the first process; and

modify, after generating the anonymous file, the executable file by the second process to create modified instructions in the executable file,

wherein file storage space storing the anonymous file is reclaimed after executing the anonymous file by the first process completes.

8. The non-transitory computer readable medium of claim 7 , wherein generating the anonymous file comprises:

generating an anonymous vnode from the original vnode;

removing an association of the original vnode with each page of the plurality of pages in main memory; and

re-associating each page of the plurality of pages with the anonymous vnode to create a plurality of re-associated pages, wherein executing the anonymous file comprises accessing at least one of the plurality of re-associated pages of the anonymous vnode.

9. The non-transitory computer readable medium of claim 8 , wherein generating the anonymous file further comprises:

loading each page of the plurality of pages into the main memory prior to re-associating each page of the plurality of pages.

10. The non-transitory computer readable medium of claim 8 , wherein each page of the plurality of pages in main memory is re-associated with the anonymous vnode.

11. The non-transitory computer readable medium of claim 7 , wherein accessing the executable file by the second process comprises:

loading a page of the executable file into main memory; and

writing to the page of the executable file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2008
From: ZOLNOWSKY, JOHN E.; CAMERON, GEORGE R.; JONES, BLAKE A.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 021677/0721 →
Continuity (1)
Related Publication 20100088496A1 · Apr 8, 2010