Memory allocation scheme
First Claim
1. A method for managing a memory, comprising the steps of:
- receiving a request for a memory allocation from a first application, the request comprising a requested memory amount;
determining a total amount of a memory available to the first application;
freeing a partition of the memory sufficient for the first application based on the requested memory amount; and
allocating the partition to the first application;
wherein the step of freeing further comprises shutting down a second application.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for managing a memory is provided which comprises the steps of: receiving a request for a memory allocation from a first application, the request comprising a requested memory amount; estimating a total amount of a memory available to the first application; freeing a partition of the memory sufficient for the first application based on the requested memory amount; and allocating the partition to the first application. The memory can be freed in a number of ways, including, by shutting down other applications based upon a priority or priority state scheme, issuing a shut down request to another application, or by allowing the user to select an application to be shut down.
-
Citations
57 Claims
-
1. A method for managing a memory, comprising the steps of:
-
receiving a request for a memory allocation from a first application, the request comprising a requested memory amount;
determining a total amount of a memory available to the first application;
freeing a partition of the memory sufficient for the first application based on the requested memory amount; and
allocating the partition to the first application;
wherein the step of freeing further comprises shutting down a second application.
-
-
2. A method for managing a memory, comprising the steps of:
-
receiving a request for a memory allocation from a first application, the request comprising a requested memory amount;
determining a total amount of a memory available to the first application;
freeing a partition of the memory sufficient for the first application based on the requested memory amount; and
allocating the partition to the first application;
wherein the step of freeing further comprises the steps of attempting to shut down a second application, determining whether the partition is free, proceeding to the allocating step if the partition is free, and generating an error if the partition is not free.
-
-
3. A method for managing a memory, comprising the steps of:
-
receiving a request for a memory allocation from a first application, the request comprising a requested memory amount;
determining a total amount of a memory available to the first application;
freeing a partition of the memory sufficient for the first application based on the requested memory amount; and
allocating the partition to the first application;
wherein the step of freeing further comprises the steps of attempting to shut down a second application, determining whether the partition is free, proceeding to the allocating step if the partition is free, and issuing a stop command to the first application if the partition is not free.
-
-
4. A method for managing a memory, comprising the steps of:
-
receiving a request for a memory allocation from a first application, the request comprising a requested memory amount;
determining a total amount of a memory available to the first application;
freeing a partition of the memory sufficient for the first application based on the requested memo amount; and
allocating the partition to the first application;
wherein the step of freeing further comprises sending a de-allocation request to a second application. - View Dependent Claims (5, 6)
-
-
7. A method for managing a memory, comprising the steps of:
-
receiving a request for a memory allocation from a first application, the request comprising a requested memory amount;
determining a total amount of a memory available to the first application;
freeing a partition of the memory sufficient for the first application based on the requested memory amount; and
allocating the partition to the first application;
wherein the memory is organized in a heap; and
wherein the step of freeing a partition of memory further comprises freeing the partition of memory from the heap. - View Dependent Claims (8)
-
-
9. A method for managing a memory comprising the steps of:
-
assigning a priority to each of a plurality of processes;
receiving a request from a first one of the plurality of processes, the request comprising a requested memory amount;
determining a total amount of memory available for allocation;
if the total amount of memory available is less than the requested amount, freeing a partition of the memory equal to at least the requested amount by freeing memory from one or more of the plurality of processes having an assigned priority which is lower than the assigned priority of the first process; and
allocating the partition of the memory to the first process. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for managing memory comprising the steps of:
-
(a) assigning a state-priority to each state of a plurality of processes;
(b) receiving a request for a memory allocation from a first process of the plurality of processes, the first process being in a first state and having a first assigned state-priority;
(c) determining a total amount of memory available for allocation;
(d) if the total amount is greater than or equal to the request, allocating a partition of memory to the first process in an amount equal to at least the requested amount; and
(e) if the total amount is less than the request, shutting down one or more of the processes having a current state-priority which is lower than the first assigned state-priority, starting with the process with the lowest current state-priority, so that memory equal to or greater than the request minus the total amount of memory available for allocation is freed, and allocating a partition of memory to the first process in an amount equal to at least the requested amount. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
-
29. A method for managing memory comprising the steps of:
-
(a) assigning a priority to each of a plurality of processes;
(b) receiving a request for memory from a first process of the plurality of processes, the first process having a first priority;
(c) determining a total amount of memory available for allocation;
(d) if the total amount is greater than or equal to the request, allocating a partition of memory to the first process in an amount equal to at least the requested amount;
(e) if the total amount is less than the request, shutting down one or more of the plurality of processes with a priority lower than the first priority, starting with the process of the plurality of processes having the lowest assigned priority, so that memory equal to or greater than the request minus the total amount of memory available for allocation is freed, and allocating a partition of memory to the first process in an amount equal to at least the requested amount. - View Dependent Claims (30, 31, 32, 33, 34)
-
-
35. A method for managing memory comprising the steps of:
-
receiving a request for a memory allocation from a requesting process;
determining a total amount of memory available for allocation;
if the total amount is greater than the request, allocating sufficient memory to the requesting process to fulfill the request;
if the total amount is less than the request;
receiving a selection of one or more other processes to shut down from a user, shutting down the selected processes and freeing any memory associated with the processes, repeating the steps of selecting and shutting down steps until memory equal to or greater than the request minus the total amount of memory available for allocation is freed; and
allocating sufficient memory to the requesting process to fulfill the request. - View Dependent Claims (36, 37)
-
-
38. A memory manager comprising a processing device coupled to a memory, the processing device operative to:
-
(a) receive a request for a memory allocation from a requesting process;
(b) determine a total amount of memory available for allocation;
(c) compare the total amount to the request;
(c)(1) if the total amount is greater than or equal to the request, allocating sufficient memory to the requesting process to fulfill the request;
(c)(2) if the total amount is less than the request, select one or more processes of the plurality of processes to shut down, shut down the selected processes, free any memory associated with the processes, and allocate sufficient memory to the requesting process to fulfill the request.
-
-
39. A system comprising:
-
a plurality of processes;
a memory; and
a memory manager;
a requesting process of the plurality of processes being operative to send a request for a memory allocation to the memory manager, the request having associated therewith a requested amount of memory;
the memory manager operative to receive a request for a memory allocation from a requesting process;
determine a total amount of memory available for allocation;
compare the total amount to the requested amount;
if the total amount is greater than or equal to the request, allocate an amount of memory equal to at least the requested amount to the requesting process;
if the total amount is less than the request (i) select one or more of the plurality of processes to shut down, (ii) request shut down of the selected processes, (iii) free any memory associated with the processes that have shut down;
repeat (i) through (iii) until memory equal to or greater than the request minus the total amount of memory available for allocation is freed; and
allocate an amount of memory equal to at least the requested amount to the requesting process;
the selected one or more of the plurality of processes operative to shut-down when requested by the memory manger and de-allocate memory when shutting down. - View Dependent Claims (40)
-
-
41. A system comprising
a memory manager; -
a memory;
a plurality of processes, each process having one or more states, each state having a corresponding assigned state-priority;
a requesting process of the plurality of processes being operative to send a request for a memory allocation to the memory manager, the request having associated therewith a requested amount of memory;
the memory manager operative to receive the request for a memory allocation from a requesting process of the plurality of processes;
determine a total amount of memory available for allocation;
compare the total amount to the requested amount;
if the total amount is greater than or equal to the requested amount, allocate an amount of memory equal to at least the requested amount to the requesting process;
if the total amount is less than the request, select one or more processes to shut down based upon the current assigned state-priorities;
request the shut down of the selected processes;
free any memory associated with the processes that shut down; and
allocate an amount of memory equal to at least the requested amount to the requesting process;
the one or more of the plurality of processes operative to shut-down when requested by the memory manger; and
de-allocate memory when shutting down. - View Dependent Claims (42, 43)
-
-
44. A computer readable medium, having stored thereon, computer executable process steps operative to control a computer to manage memory, the process steps comprising:
-
assigning a priority to each of a plurality of processes;
receiving a request from a first one of the plurality of processes, the request comprising a requested memory amount;
determining a total amount of memory available for allocation;
if the total amount of memory available is less than the requested amount, freeing a partition of the memory equal to at least the requested amount by freeing memory from one or more of the plurality of processes having an assigned priority which is lower than the assigned priority of the first process; and
allocating the partition of the memory to the first process.
-
-
45. A computer readable medium, having stored thereon, computer executable process steps operative to control a computer to manage memory, the process steps comprising:
-
assigning a state-priority to each state of a plurality of processes;
receiving a request for a memory allocation from a first process of the plurality of processes, the first process being in a first state and having a first assigned state-priority;
determining a total amount of memory available for allocation;
if the total amount is greater than or equal to the request, allocating a partition of memory to the first process in an amount equal to at least the requested amount;
if the total amount is less than the request, shutting down one or more of the processes having an assigned state-priority which is lower than the first assigned state-priority, starting with the process with the lowest assigned state-priority, so that memory equal or greater to the request minus the total amount is freed;
allocating a partition of memory to the first process in an amount equal to at least the requested amount.
-
-
46. A computer readable medium, having stored thereon, computer executable process steps operative to control a computer to manage memory, the process steps comprising:
-
assigning a priority to each of a plurality of processes;
receiving a request for memory from a first process of the plurality of processes, the first process having a first priority;
determining a total amount of memory available for allocation;
if the total amount is greater than or equal to the request, allocating a partition of memory to the first process in an amount equal to at least the requested amount;
if the total amount is less than the request, shutting down one or more of the plurality of processes with an assigned priority lower than the first priority, starting with the process of the plurality of processes having the lowest assigned priority, so that memory equal or greater to the request minus the total amount is freed; and
allocating a partition of memory to the first process in an amount equal to at least the requested amount.
-
-
47. A computer readable medium, having stored thereon, computer executable process steps operative to control a computer to manage memory, the process steps comprising:
-
receiving a request for a memory allocation from a requesting process;
determining a total amount of memory available for allocation;
if the total amount is greater than the request, allocating sufficient memory to the requesting process to fulfill the request;
if the total amount is less than the request;
selecting one or more other processes to shut down, the selection controlled by a user, shutting down the selected processes and freeing any memory associated with the processes, repeating the steps of selecting and shutting down steps until memory equal to or greater than the request minus the total amount of memory available for allocation is freed, and allocating sufficient memory to the requesting process to fulfill the request. - View Dependent Claims (48)
-
-
49. A method for managing a memory, comprising the steps of:
-
receiving a request for a memory allocation from a first application, the request comprising a requested memory amount;
determining a total amount of a memory available to the first application;
freeing a partition of the memory sufficient for the first application based on the requested memory amount; and
allocating the partition to the first application;
wherein the step of freeing includes sending a request for de-allocation of memory to a second application, and, in the second application, freeing memory in accordance with a predetermined set of rules for the second application.
-
-
50. A system comprising
a memory manager; -
a memory;
a plurality of processes, each process having one or more states, each state having a corresponding assigned state-priority;
a requesting process of the plurality of processes being operative to send a request for a memory allocation to the memory manager, the request having associated therewith a requested amount of memory;
the memory manager operative to receive the request for a memory allocation from a requesting process of the plurality of processes;
determine a total amount of memory available for allocation;
compare the total amount to the requested amount;
if the total amount is greater than or equal to the requested amount, allocate an amount of memory equal to at least the requested amount to the requesting process;
if the total amount is less than the request, select one or more processes to request memory de-allocation from based upon the current assigned state-priorities;
request de-allocation of memory from the selected processes;
de-allocate any memory freed by the one or more processes; and
allocate an amount of memory equal to at least the requested amount to the requesting process;
the one or more of the plurality of processes being operative to free memory in accordance with a predetermined set of rules when requested by the memory manager.
-
-
51. A method for managing a memory comprising the steps of:
-
receiving a request from a first one of the plurality of processes, the request comprising a requested memory amount;
estimating a total amount of memory available for allocation;
if the total amount of memory available is less than the requested amount, freeing a partition of the memory equal to at least the requested amount by freeing memory from one or more of the plurality of processes having an assigned priority which is lower than the assigned priority of the first process; and
allocating the partition of the memory to the first process.
-
-
52. A method for managing memory comprising the steps of:
-
(A) receiving a request for a memory allocation from a first process of the plurality of processes, the first process being in a first state and having a first assigned state-priority;
(B) determining a total amount of memory available for allocation;
(C) if the total amount is greater than or equal to the request, allocating a partition of memory to the first process in an amount equal to at least the requested amount; and
(D) if the total amount is less than the request, shutting down one or more of the processes having a current state-priority which is lower than the first assigned state-priority, starting with the process with the lowest current state-priority, so that memory equal or greater to the request minus the total amount is freed, and allocating a partition of memory to the first process in an amount equal to at least the requested amount.
-
-
53. A system comprising:
-
a plurality of processes;
a memory manager;
a requesting process of the plurality of processes being operative to send a request for a memory allocation to the memory manager, the request having associated therewith a requested amount of memory;
the memory manager operative to receive a request for a memory allocation from a requesting process;
determine a total amount of memory available for allocation;
compare the total amount to the requested amount;
if the total amount is greater than or equal to the request, allocate an amount of memory equal to at least the requested amount to the requesting process;
if the total amount is less than the request (i) select one or more of the plurality of processes to shut down, (ii) request shut down of the selected processes, (iii) free any memory associated with the processes that have shut down;
repeat (i) through (iii) until memory equal to or greater than the request minus the total amount of memory available for allocation is freed; and
allocate an amount of memory equal to at least the requested amount to the requesting process;
the selected one or more of the plurality of processes operative to shut-down when requested by the memory manager and de-allocate memory when shutting down.
-
-
54. A system comprising
a memory manager; -
a plurality of processes, each process having one or more states, each state having a corresponding assigned state-priority;
a requesting process of the plurality of processes being operative to send a request for a memory allocation to the memory manager, the request having associated therewith a requested amount of memory;
the memory manger operative to receive the request for a memory allocation from a requesting process of the plurality of processes;
determine a total amount of memory available for allocation;
compare the total amount to the requested amount;
if the total amount is greater than or equal to the requested amount, allocate an amount of memory equal to at least the requested amount to the requesting process;
if the total amount is less than the request, select one or more processes to shut down based upon the current assigned state-priorities;
request the shut down of the selected processes;
free any memory associated with the processes that shut down; and
allocate an amount of memory equal to at least the requested amount to the requesting process;
the one or more of the plurality of processes operative to shut-down when requested by the memory manager; and
de-allocate memory when shutting down.
-
-
55. A Java virtual machine comprising:
-
a plurality of processes;
a memory manager;
a requesting process of the plurality of processes being operative to send a request for a memory allocation to the memory manager, the request having associated therewith a requested amount of memory;
the memory manager operative to receive a request for a memory allocation from a requesting process;
determine a total amount of memory available for allocation;
compare the total amount to the requested amount;
if the total amount is greater than or equal to the request, allocate an amount of memory equal to at least the requested amount to the requesting process;
if the total amount is less than the request (i) select one or more of the plurality of processes to shut down, (ii) request shut down of the selected processes, (iii) free any memory associated with the processes that have shut down;
repeat (i) through (iii) until memory equal to or greater than the request minus the total amount of memory available for allocation is freed; and
allocate an amount of memory equal to at least the requested amount to the requesting process;
the selected one or more of the plurality of processes operative to shut-down when requested by the memory manager and de-allocate memory when shutting down.
-
-
56. A Java virtual machine comprising
a memory manager; -
a plurality of processes, each process having one or more states, each state having a corresponding assigned state-priority;
a requesting process of the plurality of processes being operative to send a request for a memory allocation to the memory manager, the request having associated therewith a requested amount of memory;
the memory manager operative to receive the request for a memory allocation from a requesting process of the plurality of processes;
determine a total amount of memory available for allocation;
compare the total amount to the requested amount;
if the total amount is greater than or equal to the requested amount, allocate an amount of memory equal to at least the requested amount to the requesting process;
if the total amount is less than the request, select one or more processes to shut down based upon the current assigned state-priorities;
request the shut down of the selected processes;
free any memory associated with the processes that shut down; and
allocate an amount of memory equal to at least the requested amount to the requesting process;
the one or more of the plurality of processes operative to shut-down when requested by the memory manager; and
de-allocate memory when shutting down.
-
-
57. A method for managing a memory, comprising the steps of:
-
receiving a request for a memory allocation from a first application, the request comprising a requested memory amount;
determining a total amount of a memory available to the first application;
freeing a partition of the memory sufficient for the first application based on the requested memory amount; and
allocating the partition to the first application;
wherein the determining step comprises estimating the total amount of memory available for allocation.
-
Specification