System and method for memory management
First Claim
1. An apparatus for automatic memory management for parallel computing of a web application, said apparatus comprising:
- a processor having at least two computer processing unit (CPU) cores;
an operating system configured to assign one or more threads of a processing function of a web application to corresponding CPU cores of said processor for concurrent execution on said corresponding CPU cores, said one or more threads comprise a first thread and at least one spawned thread;
memory having a set of blocks distributed to said first thread and said at least one spawned thread, said memory being partitioned into a nursery heap, a mature heap and a database having a plurality of private nurseries;
wherein said first thread has access to said nursery heap and mature heap, said first thread being configured to allocate and manipulate one or more objects in said nursery heap and write references to one or more objects stored in said nursery and mature heaps;
wherein said at least one spawned thread has access to an associated one of said plurality of private nurseries, said at least one spawned thread being configured to allocate and manipulate one or more objects within said associated private nursery; and
wherein, if said associated one of said plurality of private nurseries has insufficient memory space for said at least one spawned thread to complete allocation of one or more objects, said at least one spawned thread is configured to;
request access to an empty private nursery from said plurality of private nurseries, if available; and
when said empty private nursery is not available, request access to only an unused portion of memory space of a previously used private nursery from said plurality of private nurseries to allocate one or more objects.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for automatic memory management of a shared memory during parallel processing of a web application. The system includes a computing system configured to allow parallel computing of a web application executed within a web browser. The computing system includes shared memory having a set of blocks distributed at least a first thread and at least one spawned thread of a processing function of the web application. The memory is partitioned into a nursery heap, a mature heap and a database having a plurality of private nurseries, wherein the first thread has access to the nursery heap and mature heap and the at least one spawned thread has access to an associated one of the plurality of private nurseries. During parallel computing of the web application, management of the shared memory includes garbage collection of at least each of the plurality of private nurseries.
7 Citations
21 Claims
-
1. An apparatus for automatic memory management for parallel computing of a web application, said apparatus comprising:
-
a processor having at least two computer processing unit (CPU) cores; an operating system configured to assign one or more threads of a processing function of a web application to corresponding CPU cores of said processor for concurrent execution on said corresponding CPU cores, said one or more threads comprise a first thread and at least one spawned thread; memory having a set of blocks distributed to said first thread and said at least one spawned thread, said memory being partitioned into a nursery heap, a mature heap and a database having a plurality of private nurseries; wherein said first thread has access to said nursery heap and mature heap, said first thread being configured to allocate and manipulate one or more objects in said nursery heap and write references to one or more objects stored in said nursery and mature heaps; wherein said at least one spawned thread has access to an associated one of said plurality of private nurseries, said at least one spawned thread being configured to allocate and manipulate one or more objects within said associated private nursery; and wherein, if said associated one of said plurality of private nurseries has insufficient memory space for said at least one spawned thread to complete allocation of one or more objects, said at least one spawned thread is configured to; request access to an empty private nursery from said plurality of private nurseries, if available; and when said empty private nursery is not available, request access to only an unused portion of memory space of a previously used private nursery from said plurality of private nurseries to allocate one or more objects. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for automatic memory management for parallel computing of a web application, said system comprising:
-
a media source; and a client device configured to communicate with said media source over a network and access and execute a web application provided by said media source, said client device having a computing system configured to allow parallel computing of said web application, said computing system comprising; a processor having at least two computer processing unit (CPU) cores; an operating system configured to assign one or more threads of a processing function of said web application to corresponding CPU cores of said processor for concurrent execution on said corresponding CPU cores, said one or more threads comprise a first thread and at least one spawned thread; memory having a set of blocks distributed to said first thread and said at least one spawned thread, said memory being partitioned into a nursery heap, a mature heap and a database having a plurality of private nurseries; wherein said first thread has access to said nursery heap and mature heap, said first thread being configured to allocate and manipulate one or more objects in said nursery heap and write references to one or more objects stored in said nursery and mature heaps; wherein said at least one spawned thread has access to an associated one of said plurality of private nurseries, said at least one spawned thread being configured to allocate and manipulate one or more objects within said associated private nursery; and wherein, if said associated one of said plurality of private nurseries has insufficient memory space for said at least one spawned thread to complete allocation of one or more objects, said at least one spawned thread is configured to; request access to an empty private nursery from said plurality of private nurseries, if available; and when said empty private nursery is not available, request access to only an unused portion of memory space of a previously used private nursery from said plurality of private nurseries to allocate one or more objects. - View Dependent Claims (12, 13, 14, 15)
-
-
16. At least one non-transitory computer accessible medium storing instructions which, when executed by a machine, cause the machine to perform operations for automatic memory management for parallel computing of a web application, said operations comprising:
-
initiating concurrent execution of one or more threads of a processing function of a web application on corresponding CPU cores of a processor, said one or more threads comprise a first thread and at least one spawned thread; acquiring associated blocks in a shared memory distributed to said first thread and said at least one spawned thread, said blocks comprising a nursery heap, a mature heap and a database having a plurality of private nurseries, wherein said first thread has access to and is configured to allocate and manipulate one or more objects within said nursery heap and mature heap and said at least one spawned thread has access to and is configured to allocate and manipulate one or more objects within an associated one of said plurality of private nurseries; monitoring execution of at least said first thread and said at least one spawned thread and managing life cycles of one or more objects allocated and stored within said nursery heap, mature heap and each of said plurality of nurseries of said memory; determining said associated one of said plurality of private nurseries has insufficient memory space for said at least one spawned thread to complete allocation of one or more objects; accessing to an empty private nursery from said plurality of private nurseries, if available; when said empty private nursery is not available, identifying a previously used private nursery from said plurality of private nurseries having a portion of memory space available for said at least one spawned thread to allocate one or more objects; and accessing only an unused portion of available memory space of said previously used private nursery and allocating one or more objects within said unused portion of available memory space. - View Dependent Claims (17, 18)
-
-
19. A method for automatic memory management for parallel computing of a web application, said method comprising:
-
initiating concurrent execution of one or more threads of a processing function of a web application on corresponding CPU cores of a processor, said one or more threads comprising a first thread and at least one spawned thread; acquiring associated blocks in a shared memory distributed to said first thread and said at least one spawned thread, said blocks comprising a nursery heap, a mature heap and a database having a plurality of private nurseries, wherein said first thread has access to and is configured to allocate and manipulate one or more objects within said nursery heap and mature heap and said at least one spawned thread has access to and is configured to allocate and manipulate one or more objects within an associated one of said plurality of private nurseries; monitoring execution of at least said first thread and said at least one spawned thread and managing life cycles of one or more objects allocated and stored within said nursery heap, mature heap and each of said plurality of nurseries of said memory; determining said associated one of said plurality of private nurseries has insufficient memory space for said at least one spawned thread to complete allocation of one or more objects; accessing to an empty private nursery from said plurality of private nurseries, if available; when said empty private nursery is not available, identifying a previously used private nursery from said plurality of private nurseries having a portion of memory space available for said at least one spawned thread to allocate one or more objects; and accessing only an unused portion of available memory space of said previously used private nursery and allocating one or more objects within said unused portion of available memory space. - View Dependent Claims (20, 21)
-
Specification