Cooperative mechanism for efficient application memory allocation
First Claim
1. A method for managing memory freed by processes executing in a virtual memory space in a computer system implementing means for mapping virtual memory addresses into physical memory locations accessible by an operating system (O/S), said method comprising:
- receiving, by said O/S, an indication of freed memory in said virtual memory space that spans one or more fixed size memory units in physical memory;
adding said fixed size memory units to a free memory pool, said fixed size memory units in a free memory pool being directly allocatable to a process requiring backing physical memory store without the 0/S deleting data in the freed fixed size memory units; and
maintaining information about said process and one or more free memory pools having fixed size memory units, said information used to directly allocate said freed fixed size memory units to a process, wherein said fixed size memory unit comprises a physical memory page frame, and prior to said O/S adding one or more fixed size memory units into a free memory pool, unmapping a physical memory page frame from virtual memory space.
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.
122 Citations
22 Claims
-
1. A method for managing memory freed by processes executing in a virtual memory space in a computer system implementing means for mapping virtual memory addresses into physical memory locations accessible by an operating system (O/S), said method comprising:
-
receiving, by said O/S, an indication of freed memory in said virtual memory space that spans one or more fixed size memory units in physical memory; adding said fixed size memory units to a free memory pool, said fixed size memory units in a free memory pool being directly allocatable to a process requiring backing physical memory store without the 0/S deleting data in the freed fixed size memory units; and maintaining information about said process and one or more free memory pools having fixed size memory units, said information used to directly allocate said freed fixed size memory units to a process, wherein said fixed size memory unit comprises a physical memory page frame, and prior to said O/S adding one or more fixed size memory units into a free memory pool, unmapping a physical memory page frame from virtual memory space. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for managing memory freed by processes executing in a virtual memory space in a computer system implementing means for mapping virtual memory addresses into physical memory locations accessible by an operating system (O/S), said method comprising:
-
receiving, by said O/S, an indication of freed memory in said virtual memory space that spans one or more fixed size memory units in physical memory; adding said fixed size memory units to a free memory pool, said fixed size memory units in a free memory pool being directly allocatable to a process requiring backing physical memory store without the O/S deleting data in the freed fixed size memory units; and maintaining information about said process and one or more free memory pools having fixed size memory units, said information used to directly allocate said freed fixed size memory units to a process, wherein said fixed size memory unit comprises a physical memory page frame, and prior to said O/S adding one or more fixed size memory units into a free memory pool, designating said physical memory page frame as read-only by a process while leaving said physical memory page frame mapped to said process'"'"'s virtual memory space. - View Dependent Claims (18, 19, 20, 21, 22)
-
Specification