IP Library Granted Patent US 7,426,720
Granted Patent B1
US 7,426,720 · App. 10/745,023 · Granted Sep 16, 2008

System and method for dynamic preloading of classes through memory space cloning of a master runtime system process

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,426,720
App. No.
10/745,023
Granted
Sep 16, 2008
Kind
B1
Abstract

A system and method for dynamic preloading of classes through memory space cloning of a master runtime system process is presented. A master runtime system process is executed. A representation of at least one class is obtained from a source definition provided as object-oriented program code. The representation is interpreted and instantiated as a class definition in a memory space of the master runtime system process. The memory space is cloned as a child runtime system process responsive to a process request and the child runtime system process is executed, inheriting the memory state of the parent, which reflects the data structures and state corresponding to the preloaded classes.

Claims (50)

1. A system for dynamic preloading of classes through memory space cloning of a master runtime system process, comprising:

A processor; A memory a class preloader to obtain a representation of at least one class from a source definition provided as object-oriented program code;

a master runtime system process to interpret and to instantiate the representation as a class definition in a memory space of the master runtime system process;

a runtime environment to clone the memory space as a child runtime system process responsive to a process request and to execute the child runtime system process; and

a copy-on-write process cloning mechanism to instantiate the child runtime system process by copying references to the memory space of the master runtime system process into a separate memory space for the child runtime system process, and to defer copying of the memory space of the master runtime system process until the child runtime system process needs to modify the referenced memory space of the master runtime system process.

2. A system according to claim 1 , further comprising:

a cache checker to determine whether the instantiated class definition is available in a local cache associated with the master runtime system process.

3. A system according to claim 2 , further comprising:

a class locator to locate the source definition if the instantiated class definition is unavailable in the local cache.

4. A system according to claim 1 , further comprising:

a class resolver to resolve the class definition.

5. A system according to claim 1 , further comprising:

at least one of a local and remote file system to maintain the source definition as a class file.

6. A system according to claim 1 , further comprising:

a process cloning mechanism to instantiate the child runtime system process by copying the memory space of the master runtime system process into a separate memory space for the child runtime system process.

7. A system according to claim 1 , wherein the master runtime system process is caused to sleep relative to receiving the process request.

8. A system according to claim 1 , wherein the object-oriented program code is written in the Java programming language.

9. A system according to claim 8 , wherein the master runtime system process and the child runtime system process are Java virtual machines.

10. A method for dynamic preloading of classes through memory space cloning of a master runtime system process, comprising:

executing a master runtime system process;

obtaining a representation of at least one class from a source definition provided as object-oriented program code;

interpreting and instantiating the representation as a class definition in a memory space of the master runtime system process; and

cloning the memory space as a child runtime system process responsive to a process request and executing the child runtime system process;

wherein cloning the memory space as a child runtime system process involves instantiating the child runtime system process by copying references to the memory space of the master runtime system process into a separate memory space for the child runtime system process; and

wherein copying references to the memory space of the master runtime system process defers copying of the memory space of the master runtime system process until the child runtime system process needs to modify the referenced memory space of the master runtime system process.

11. A method according to claim 10 , further comprising:

determining whether the instantiated class definition is available in a local cache associated with the master runtime system process.

12. A method according to claim 11 , further comprising:

locating the source definition if the instantiated class definition is unavailable in the local cache.

13. A method according to claim 10 , further comprising:

resolving the class definition.

14. A method according to claim 10 , further comprising:

maintaining the source definition as a class file on at least one of a local and remote file system.

15. A method according to claim 10 , further comprising:

instantiating the child runtime system process by copying the memory space of the master runtime system process into a separate memory space for the child runtime system process.

16. A method according to claim 10 , further comprising:

causing the master runtime system process to sleep relative to receiving the process request.

17. A method according to claim 10 , wherein the object-oriented program code is written in the Java programming language.

18. A method according to claim 17 , wherein the master runtime system process and the child runtime system process are Java virtual machines.

19. A computer-readable storage medium holding code for performing the method according to claim 10 .

20. An apparatus for dynamic preloading of classes through memory space cloning of a master runtime system process, comprising:

A processor; A memory means for executing a master runtime system process;

means for obtaining a representation of at least one class from a source definition provided as object-oriented program code;

means for interpreting and means for instantiating the representation as a class definition in a memory space of the master runtime system process; and

means for cloning the memory space as a child runtime system process responsive to a process request and means for executing the child runtime system process;

wherein the means for cloning the memory space is configured to clone the memory space of a child runtime system process using a copy-on-write process cloning mechanism that instantiates the child runtime system process by copying references to the memory space of the master runtime system process into a separate memory space for the child runtime system process and that defers copying of the memory space of the master runtime system process until the child runtime system process needs to modify the referenced memory space of the master runtime system process.

21. A system according to claim 1 , further comprising:

a resource controller to set operating system level resource management parameters on the child runtime system process.

22. A method according to claim 10 , further comprising:

setting operating system level resource management parameters on the child runtime system process.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037303/0349 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2003
From: FRESKO, NEDIM
To: SUN MICROSYSTEMS, INC.
Reel/Frame 014850/0664 →