Memory management
AssigneeInternational Business Machines Corporation
InventorsMichael P. Lyons, Andrew Hicks, Miles C. Pedrone, Yunli Tang, Tynan J. Garrett
Life of this patent
Estimating the term…
Abstract
Memory management in a computer system is described. Memory is allocated within page-aligned real memory storage to requesting processes. During a normal operation mode, pages of the real memory storage are allocated in accordance with a buddy allocation algorithm. A triggering condition is detected. Responsive to the detection, at least one contiguous page-sized or smaller memory segment that violates the buddy allocation algorithm is allocated to a requesting process.
Claims12
A memory-management method comprising:
- allocating memory within page-aligned real memory storage to requesting processes in contiguous page-sized or smaller memory segments, wherein pages of the real memory storage are allocated in accordance with a buddy allocation algorithm;
- detecting a triggering condition;
- and
- responsive to the detection, allocating, to a requesting process, at least one contiguous page-sized or smaller memory segment that violates the buddy allocation algorithm, wherein the at least one memory segment comprises two contiguous, same-sized buddy memory segments, and wherein the at least one memory segment violates the buddy allocation algorithm by extending across a buddy system boundary.
A computer program product for memory management, the computer program product comprising a computer readable storage medium, the computer readable storage medium having program instructions embodied therewith, the programs instructions configured, when executed by at least one computer, to cause the at least one computer to perform a method comprising:
- allocating memory within page-aligned real memory storage to requesting processes in contiguous page-sized or smaller memory segments, wherein pages of the real memory storage are allocated in accordance with a buddy allocation algorithm;
- scanning the real memory storage for unallocated page-sized or smaller memory segments that cannot be allocated in accordance with the buddy allocation algorithm;
- assigning the unallocated memory segments identified from the scan to at least one pool;
- detecting a triggering condition;
- and
- responsive to the detection, allocating, to a requesting process, at least one contiguous page-sized or smaller memory segment that violates the buddy allocation algorithm, wherein the allocating, responsive to the detection, the at least one contiguous page-sized or smaller memory segment that violates the buddy allocation algorithm to the requesting process comprises:
- responsive to the detection, allocating the unallocated memory segments in the at least one pool to requesting processes.
A system for memory management, the system comprising:
- a computer readable storage medium;
- and
- a processor in communication with the computer readable storage medium, the processor configured to obtain instructions from the computer readable storage medium that cause the processor to perform a method comprising:
- allocating memory within page-aligned real memory storage to requesting processes in contiguous page-sized or smaller memory segments, wherein pages of the real memory storage are allocated in accordance with a buddy allocation algorithm;
- scanning the real memory storage for unallocated page-sized or smaller memory segments that cannot be allocated in accordance with the buddy allocation algorithm;
- assigning the unallocated memory segments identified from the scan to at least one pool;
- responsive to an allocation of a portion of a particular unallocated memory segment in the at least one pool or a deallocation of a memory segment that is a paired buddy with the portion of the particular unallocated memory segment, removing at least the portion of that particular unallocated memory segment from the at least one pool;
- detecting a triggering condition;
- and
- responsive to the detection, allocating, to a requesting process, at least one contiguous page-sized or smaller memory segment that violates the buddy allocation algorithm, wherein the allocating, responsive to the detection, the at least one contiguous page-sized or smaller memory segment that violates the buddy allocation algorithm to the requesting process comprises:
- responsive to the detection, allocating the unallocated memory segments in the at least one pool to requesting processes.
Dependencies are inferred from the claim text.