US20030196061A1

System and method for secure execution of multiple applications using a single GC heap

Claim Score by NHIP

Read claim 1, the broadest

Abstract

A system and method for secure execution of multiple applications using a single GC heap are provided. A root set is maintained for each of the applications. Each root set includes one or more pointers objects stored in the heap. After a garbage collection operation is performed, the root sets may be used to measure resources consumption by each of the applications. The root sets may be used to measure heap consumption by associating each data structure in the memory with a particular application based on reachability from the application's root set. The root sets may be used to measure CPU time consumption during the GC by dividing the total time consumed by the GC by the total amount of the memory or number of objects used by the application. An object finalizer may be executed in a finalizer thread for each application to help limit GC-related misbehavior to GC of the objects of the misbehaving application itself. In one embodiment, static fields of some classes may be shared among applications. To prevent the compromising of the GC security, static files may be replicated per application.

US20030196061A1, drawing sheet 1
Sheet 1 of 5

Term

Term ended

Projected expiry passed 16 April 2022, 4.4 years ago.

  1. Priority and filed
  2. Published
  3. Projected expiry
  4. Today

24 claims: 3 independent, 21 dependent

  1. 1
    Broadest claimClaim Score 70, broad(NHIP)A method for sharing a memory among a plurality of applications, the method comprising:maintaining a root set for each of the plurality of applications during execution of the plurality of applications on a computer system, wherein each root set comprises one or more pointers to data structures stored in the memory;performing a garbage collection operation on the memory, wherein the garbage collection operation comprises: determining which of the data structures is in use;and reclaiming data structures that are not in use;and using the root sets to measure one or more resources consumed by each of the plurality of applications.
  2. 9
    A carrier medium comprising program instructions for sharing a memory among a plurality of applications, wherein the program instructions are computer-executable to implement:maintaining a root set for each of the plurality of applications during execution of the plurality of applications on the computer, wherein each root set comprises one or more pointers to data structures stored in the memory;performing a garbage collection operation on the memory, wherein the garbage collection operation comprises: determining which of the data structures is in use;and reclaiming data structures that are not in use;and using the root sets to measure one or more resources consumed by each of the plurality of applications.
  3. 17
    A system for sharing a memory among a plurality of applications, wherein the system comprises:a CPU;a memory coupled to the CPU, wherein the memory stores a plurality of applications which are executable by the CPU, and wherein the memory stores program instructions which are executable by the CPU to: maintain a root set for each of the plurality of applications during execution of the plurality of applications, wherein each root set comprises one or more pointers to data structures stored in the memory;perform a garbage collection operation on the memory, wherein in the garbage collection operation, the program instructions are executable by the CPU to: determine which of the data structures is in use;and reclaim data structures that are not in use;and use the root sets to measure one or more resources consumed by each of the plurality of applications.