Cooperative mechanism for efficient application memory allocation
First Claim
1. A method, implemented by a processor, for allocating memory comprising:
- denoting a freed memory unit of a physical memory as available for reuse, without altering process data in the freed memory unit;
receiving a request, associated with a process, for a memory allocation from the physical memory;
determining, by the processor in response to the request, whether the process data contained in the freed memory unit is disclosable to the process associated with the request; and
allocating, by the processor, the freed memory unit to the process, if the determining indicates that the process data is disclosable to the process;
orallocating, by the processor, a memory unit other than the freed memory unit to the process, if the determining indicates that the process data is not disclosable to the process.
1 Assignment
0 Petitions
Accused Products
Abstract
System, method and computer program product for allocating physical memory to processes. The method includes enabling a kernel to free memory in a physical memory space corresponding to arbitrarily sized memory allocations released by processes or applications in a virtual memory space. After freeing the memory, the system determines whether freed physical memory in the physical memory space spans one or more fixed size memory units (e.g., page frames). The method further includes designating a status of the one or more page frames as available for reuse; the freed page frames marked as available for reuse being available for backing a new process without requiring the kernel to delete data included in the freed memory released by the process. The kernel may organize pages marked as available for reuse in one or more local “pools” that is organized according to a variety of schemes which provide system efficiencies in that the kernel can eliminate the need for deleting of old data in those page frames without compromising data security.
110 Citations
18 Claims
-
1. A method, implemented by a processor, for allocating memory comprising:
-
denoting a freed memory unit of a physical memory as available for reuse, without altering process data in the freed memory unit; receiving a request, associated with a process, for a memory allocation from the physical memory; determining, by the processor in response to the request, whether the process data contained in the freed memory unit is disclosable to the process associated with the request; and allocating, by the processor, the freed memory unit to the process, if the determining indicates that the process data is disclosable to the process;
orallocating, by the processor, a memory unit other than the freed memory unit to the process, if the determining indicates that the process data is not disclosable to the process. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for allocating memory comprising:
-
a memory containing instructions; and a processor, operably connected to the memory, that executes the instructions to perform operations comprising; denoting a freed memory unit of a physical memory as available for reuse, without altering process data in the freed memory unit; receiving a request, associated with a process, for a memory allocation from the physical memory; determining, in response to the request, whether the process data contained in the freed memory unit is disclosable to the process associated with the request; and allocating the freed memory unit to the process, if the determining indicates that the process data is disclosable to the process;
orallocating a memory unit other than the freed memory unit to the process, if the determining indicates that the process data is not disclosable to the process. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A method, implemented by a processor, for allocating memory comprising:
-
placing a freed memory unit of a physical memory in a local reuse pool, without altering process data in the freed memory unit; receiving a request, associated with a first process, for a memory allocation from the physical memory; if the process data contained in the freed memory unit is disclosable to the first process associated with the request, then allocating, by the processor and to the process, the freed memory unit from the local reuse pool; and if the process data contained in the freed memory unit is not disclosable to the first process, then allocating, by the processor and to the process, a cleared memory unit; wherein the cleared memory unit contains no usable data from a second process that previously used the cleared memory unit. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification