METHODS AND SYSTEMS FOR DEADLOCK-FREE ALLOCATION OF MEMORY
First Claim
Patent Images
1. A method for memory management, comprising:
- maintaining a reference count for at least one first process associated with a portion of memory;
maintaining a shared reference count for at least one second process associated with the portion of memory; and
freeing the portion of memory when the shared reference count is decremented to zero and the reference count equals zero.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems for memory management. A method for memory management includes: maintaining a reference count for at least one first process associated with a portion of memory; maintaining a shared reference count for at least one second process associated with the portion of memory; and freeing the portion of memory when the shared reference count is decremented to zero.
30 Citations
20 Claims
-
1. A method for memory management, comprising:
-
maintaining a reference count for at least one first process associated with a portion of memory; maintaining a shared reference count for at least one second process associated with the portion of memory; and freeing the portion of memory when the shared reference count is decremented to zero and the reference count equals zero. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for allocating memory resources, comprising:
a storage controller including hardware and software arranged to; designate I/O processes as one of updating processes and non-updating processes; maintain a reference count of the updating processes and a shared reference count of the non-updating processes associated with a page of memory; and delay freeing the page until the shared reference count equals zero. - View Dependent Claims (9, 10, 11, 12, 13)
-
14. A computer program product comprising a tangible computer-usable medium having a computer readable program embodied in the medium, wherein the computer readable program when executed on a storage controller causes the storage controller to:
-
receive a first function call associated with a first process; designate the first process as a non-updating process; allocate to the first process a first page reference to a first page of memory; receive a second function call associated with a second process; designate the second process as an updating process; copy contents of the first page to a second page; merge sectors of the first page to the second page after the second process has altered sectors of the second page; and delay freeing the first page until the first process terminates. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A method for managing memory, comprising:
-
providing a direct memory access storage controller that operates to; designate I/O processes associated with a page of memory as one of updating and non-updating; update a reference count representing a number of updating processes associated with the page; update a shared reference count representing a total number of non-updating processes associated with the page; and free the page for use by other code when the shared reference count decrements to zero, wherein the storage controller comprises a combination of hardware and software.
-
Specification