Heap memory management
First Claim
1. A method for managing memory, comprising:
- breaking up a file into two or more memory blocks;
managing the two or more memory blocks as nodes in a heap tree wherein each node has a heap block reference;
receiving a request to access memory at a linear file address; and
translating the linear file address to an appropriate heap block reference to access the memory block.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, apparatus, and article of manufacture provide the ability to efficiently and effectively manage memory. A file is broken into multiple memory blocks that are managed as nodes in a heap tree. A request to access memory at a linear file address is received. The linear file address is then translated to the appropriate heap block reference to complete the memory access. Additionally, a tri-linked list/tree of deallocated memory units available for use by the heap may be used. A first link points to units smaller than a current block size, a second link points to units equal to the current block size, and a third link points to units larger than the current block size. When a request for memory is received, the tree is traversed to find a unit that satisfies the request and the appropriate unit in the free list is allocated.
17 Citations
23 Claims
-
1. A method for managing memory, comprising:
-
breaking up a file into two or more memory blocks;
managing the two or more memory blocks as nodes in a heap tree wherein each node has a heap block reference;
receiving a request to access memory at a linear file address; and
translating the linear file address to an appropriate heap block reference to access the memory block. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for allocating memory comprising:
-
maintaining, in a tree, a tri-linked list of deallocated memory units available for use by a heap, wherein a first link points to available deallocated memory units smaller than a current block size, a second link points to available deallocated memory units equal to the current block size, and a third link points to available deallocated memory units larger than the current block size;
receiving a request for memory;
traversing the tree to find a deallocated memory unit that satisfies the request for memory; and
allocating the deallocated memory unit that satisfies the request. - View Dependent Claims (7, 8)
-
-
9. A system for managing memory comprising:
-
(a) a file broken up into two or more blocks of memory;
(b) a heap tree configured to manage the two or more blocks of memory as nodes in the heap tree, wherein;
(i) each node has a heap block reference;
(ii) the heap tree is configured to receive a request to access memory at a linear file address; and
(iii) the heap tree is configured to translate the linear file address to an appropriate heap block reference to access the memory block. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A system for allocating memory comprising:
-
(a) a heap tree comprising a tri-linked list of deallocated memory units available for use by a heap;
(b) a first link of the tri-linked list pointing to available deallocated memory units smaller than a current block size;
(c) a second link of the tri-linked list pointing to available deallocated memory units equal to the current block size;
(d) a third link of the tri-linked list pointing to available deallocated memory units larger than the current block size;
(e) the heap configured to;
(i) receive a request for memory;
(ii) traverse the heap tree to find a deallocated memory unit that satisfies the request for memory; and
(iii) allocate the deallocated memory unit that satisfies the request. - View Dependent Claims (15)
-
-
16. An article of manufacture comprising a program storage medium readable by a computer and embodying one or more instructions executable by the computer to perform a method for managing memory, the method comprising:
-
breaking up a file into two or more memory blocks;
managing the two or more memory blocks as nodes in a heap tree wherein each node has a heap block reference;
receiving a request to access memory at a linear file address; and
translating the linear file address to an appropriate heap block reference to access the memory block. - View Dependent Claims (17, 20)
-
- 18. The article of manufacture of claim 18, wherein the method further comprises updating the file address mapping tree when a block is inserted into the heap tree.
-
21. An article of manufacture comprising a program storage medium readable by a computer and embodying one or more instructions executable by the computer to perform a method for allocating memory, the method comprising:
-
maintaining, in a tree, a tri-linked list of deallocated memory units available for use by a heap, wherein a first link points to available deallocated memory units smaller than a current block size, a second link points to available deallocated memory units equal to the current block size, and a third link points to available deallocated memory units larger than the current block size;
receiving a request for memory;
traversing the tree to find a deallocated memory unit that satisfies the request for memory; and
allocating the deallocated memory unit that satisfies the request. - View Dependent Claims (22, 23)
-
Specification