A system and method for memory allocation from a heap comprising memory blocks of a uniform fixed size. Each memory block has a status bit. A binary status key stores a Boolean value indicating free memory. The heap is scanned in order until a sequence of a requested quantity of free contiguous memory blocks is found or NULL is returned. Each scanned free memory block is marked un-free by assigning its status bit to the logical negative of the binary status key. If the end of the heap is reached before a sequence of sufficient quantity is found, all reachable blocks are marked as free. The binary status key is flipped such that all memory blocks which were marked free are now un-free, and vice versa. Any memory block whose corresponding structure has become unreferenced is reclaimed for future use. The scan then continues from the beginning of the heap. In another embodiment, a memory allocation for a partitioned data structure from a heap of fixed-size memory blocks may be used. The quantity of memory blocks required to store a data structure is determined. The required quantity of the memory blocks, which may be noncontiguous, is allocated from the heap. The allocated memory blocks are linked in a list such that the components of the data structure are partitioned in the proper order across the allocated quantity of memory blocks.

Un système et une méthode pour l'attribution de mémoire d'un tas comportant des blocs de mémoire d'une taille fixe uniforme. Chaque bloc de mémoire a un peu de statut. Une clef de statut binaire stocke une valeur booléenne indiquant la mémoire libre. Le tas est balayé dans l'ordre jusqu'à ce qu'un ordre d'une quantité demandée de blocs contigus libres de mémoire soit trouvé ou NUL est retourné. Chaque bloc libre balayé de mémoire est un-libre marqué en assignant son statut mordu au négatif logique de la clef de statut binaire. Si l'extrémité du tas est atteinte avant qu'un ordre de quantité suffisante soit trouvé, tous les blocs accessibles sont marqués en tant que librement. La clef de statut binaire est renversée tels que tous les blocs de mémoire qui ont été marqués librement sont maintenant un-libres, et vice versa. N'importe quel bloc de mémoire dont la structure correspondante est devenue unreferenced est repris pour le futur usage. Le balayage continue alors du commencement du tas. Dans une autre incorporation, une attribution de mémoire pour une structure de données divisée d'un tas des blocs à taille fixe de mémoire peut être employée. La quantité de blocs de mémoire exigés pour stocker une structure de données est déterminée. La quantité exigée des blocs de mémoire, qui peuvent être noncontiguous, est assignée du tas. Les blocs assignés de mémoire sont liés dans une liste tels que les composants de la structure de données sont divisés dans l'ordre approprié à travers la quantité assignée de blocs de mémoire.

 
Web www.patentalert.com

< (none)

< System, method and article of manufacture for authorizing the use of electronic content utilizing a laser-centric medium

> System, method and computer program product for hardware assisted backup for a computer mass storage system

> (none)

~ 00044