A method for managing computer memory includes maintaining multiple sets of
free blocks of memory wherein a free block is added to a set based on its
size. In response to a request for a block of a request size, a set of
blocks is searched for a free block which is at least as large as the
request size but smaller than the request size plus a threshold. If such a
block is found, the block is allocated in its entirety if such a free
block is not found, a block at least as large as the request size maybe
split and the request satisfied with the resulting split block. Methods
for managing a block of contiguous persistent memory or storage and for
coalescing adjacent free blocks using header information are also
described.
Eine Methode für das Handhaben des Computerspeichers schließt beibehaltene mehrfache Sätze der freien Blöcke des Gedächtnisses ein, worin ein freier Block einem Satz hinzugefügt wird, der auf seiner Größe basiert. In Erwiderung auf einen Antrag für einen Block einer Antraggröße, wird ein Satz Blöcke nach einem freien Block gesucht, der mindestens wie die Antraggröße aber das kleiner als die Antraggröße plus eine Schwelle so groß ist. Wenn solch ein Block gefunden wird, wird der Block in seiner Ganzheit zugeteilt, wenn solch ein freier Block nicht gefunden wird, in einem Block mindestens so groß, wie die Antraggröße sich möglicherweise aufspaltete und im Antrag, der mit dem resultierenden aufgeteilten Block erfüllt ist. Methoden für das Handhaben eines Blockes des angrenzenden hartnäckigen Gedächtnisses oder der Ablage und für die verschmelzenden angrenzenden freien Blöcke, die Kopfzeile verwenden, werden auch beschrieben.