Reuse of dynamically allocated memory
First Claim
1. A computer-readable storage media storing instructions that, when executed, instruct a processor to perform acts comprising:
- associating a first virtual memory address pointer to a first memory page of a random access memory (RAM) and a second virtual memory address pointer to a second memory page of the RAM;
identifying one or more flagged memory pages of a plurality of memory pages, the one or more flagged memory pages associated with a flag that indicates that the corresponding page has been modified within a pre-determined interval of time;
identifying a plurality of target memory pages of the plurality of memory pages, the target memory pages excluding the one or more flagged memory pages and including at least the first memory page and the second memory page;
scanning the plurality of target memory pages for memory pages deemed to have identical contents;
identifying, based at least in part on the scanning, that the first memory page and the second memory page have contents that are deemed to be identical to one another;
designating the first memory page as a primary page;
designating the second memory page as a duplicate page; and
updating the second virtual memory address pointer referring to the second memory page to refer to the first memory page.
1 Assignment
0 Petitions
Accused Products
Abstract
Overall memory requirements are minimized by performing copy on write and collapse on write operations using memory pointers when storing data within memory pages. Multiple memory pointers may refer to a primary page storing a definitive copy of data. When that data is to be modified, a copy on write operation creates a second copy in another memory page which may then be modified and updates memory pointers accordingly. When data within two or more memory pages is identical to data within a primary page, a collapse on write operation updates memory pointers to refer to the primary page and de-allocates the duplicative and now unused memory pages.
51 Citations
24 Claims
-
1. A computer-readable storage media storing instructions that, when executed, instruct a processor to perform acts comprising:
-
associating a first virtual memory address pointer to a first memory page of a random access memory (RAM) and a second virtual memory address pointer to a second memory page of the RAM; identifying one or more flagged memory pages of a plurality of memory pages, the one or more flagged memory pages associated with a flag that indicates that the corresponding page has been modified within a pre-determined interval of time; identifying a plurality of target memory pages of the plurality of memory pages, the target memory pages excluding the one or more flagged memory pages and including at least the first memory page and the second memory page; scanning the plurality of target memory pages for memory pages deemed to have identical contents; identifying, based at least in part on the scanning, that the first memory page and the second memory page have contents that are deemed to be identical to one another; designating the first memory page as a primary page; designating the second memory page as a duplicate page; and updating the second virtual memory address pointer referring to the second memory page to refer to the first memory page. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
a processor; a random access memory (RAM), coupled to the processor; and a memory manager module, coupled to the processor and coupled to the RAM, the memory manager module configured to; associate a first address pointer to a first memory location of the RAM and a second address pointer to a second memory location of the RAM; identify one or more flagged memory locations associated with a flag that indicates that a corresponding memory location is being read from or written to; identify target memory locations excluding the one or more flagged memory locations, the target memory locations including at least the first memory location and the second memory location; scan the target memory locations for memory locations deemed to have identical contents; identify, based at least in part on the scanning, that the first memory location and the second memory location have contents that are deemed to be identical to one another; designate the first memory location as a primary location; designate the second memory location as a duplicate location; and update the second address pointer referring to the second memory location to refer to the first memory location. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A method comprising:
-
identifying flagged memory pages of a Random Access Memory (RAM), the flagged memory pages associated with a flag indicating that a corresponding memory page has been modified within a pre-determined interval of time; scanning target memory pages of the RAM for memory pages deemed to have identical contents, the target memory pages excluding the flagged memory pages; identifying, based at least in part on the scanning, identical memory pages having contents that are deemed to be identical to one another; and updating one or more address pointers referencing individual ones of the identical memory pages to reference a primary page of the identical memory pages. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. One or more computer-readable storage media encoded with instructions that, when executed by one or more processors, causes the one or more processors to perform acts comprising:
-
identifying one or more flagged memory pages of a Random Access Memory (RAM), the one or more flagged memory pages associated with a flag indicating that a corresponding memory page has been modified within a pre-determined interval of time; scanning target memory pages of the RAM for memory pages deemed to have identical contents, the target memory pages excluding the flagged memory pages; identifying, based at least in part on the scanning, identical memory pages having contents that are deemed to be identical to one another; and updating one or more address pointers referencing individual ones of the identical memory pages to reference a primary page of the identical memory pages. - View Dependent Claims (21, 22, 23, 24)
-
Specification