A computer system (10) implements a memory allocator that employs a data
structure (FIG. 3) to maintain an inventory of dynamically allocated
memory available to receive new data. It receives from one or more
programs requests that it allocate memory from a dynamically allocable
memory "heap." It responds to such requests by performing the requested
allocation and removing the thus-allocated memory block from the
inventory. Conversely, it adds to the inventory memory blocks that the
supported program or programs request be freed. In the process, it
monitors the frequencies with which memory blocks of different sizes are
allocated, and it projects from those frequencies future demand for
different-sized memory blocks. When it needs to coalesce multiple smaller
blocks to fulfil an actual or expected request for a larger block, it
bases its selection of which constituent blocks to coalesce on whether
enough free blocks of a constituent block's size exist to meet the
projected demand for them.
Un sistema di elaborazione (10) effettua un allocator di memoria che impiega una struttura di dati (fig. 3) per effettuare un inventario della memoria dinamicamente assegnata disponibile per ricevere i nuovi dati. Riceve da uno o più programmi chiede che assegna la memoria da una memoria dinamicamente allocable "mucchio." Risponde a tali richieste realizzando la ripartizione chiesta e rimuovendo il blocchetto così-assegnato di memoria dall'inventario. Per contro, aggiunge ai blocchetti di memoria di inventario che il programma o i programmi sostenuti chiede è liberato. Nel processo, controlla le frequenze con cui i blocchetti di memoria dei formati differenti sono assegnati e si proietta dalla domanda futura di quelle frequenze dei blocchetti differente-graduati di memoria. Quando deve unirsi più piccoli blocchi multipli per compiere una richiesta reale o prevista per un più grande blocco, basa la relativa selezione di cui blocchi costituenti da unirsi sopra se abbastanza blocchi liberi di un formato del blocco costituente esistono per rispondere loro l'esigenza proiettata.