Preemptive memory-block splitting

   
   

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 various sizes are allocated, and it projects from those frequencies future-demand values for memory blocks of those sizes. It then splits larger blocks into smaller ones preemptively, i.e., before a request for the result of the splitting. To split a relatively large block preemptively in order to meet an expected request for a smaller block, it bases its selection of the larger block to be split on whether the supply of free blocks of that size is great enough to meet the expected demand for such blocks. It also splits blocks reactively, i.e., in response to a previously made request for a block that will result from the splitting operation.

Un sistema informático (10) pone a allocator de la memoria en ejecucio'n que emplea una estructura de datos (fig. 3) para mantener un inventario de memoria dinámicamente asignada disponible para recibir nuevos datos. Recibe de unos o más programas solicita que asigna memoria de una memoria dinámicamente allocable "montón." Responde a tales peticiones realizando la asignación solicitada y quitando el bloque asi'-asignado de la memoria del inventario. Inversamente, agrega a los bloques de la memoria del inventario que el programa o los programas apoyados solicita esté liberado. En el proceso, supervisa las frecuencias con las cuales los bloques de la memoria de varios tamaños se asignan, y proyecta de esas frecuencias futuro-exige los valores para los bloques de la memoria de esos tamaños. Entonces parte bloques más grandes en los más pequeños con derecho preferente, es decir, antes de un pedido el resultado de partir. Para partir un bloque relativamente grande con derecho preferente para satisfacer un pedido previsto un bloque más pequeño, basa su selección del bloque más grande que se partirá encendido si la fuente de bloques libres de ese tamaño es bastante grande resolver la demanda prevista para tales los bloques. También parte bloques reactivo, es decir, en respuesta a un pedido previamente hecho un bloque que resulte de la operación que parte.

 
Web www.patentalert.com

< Method and apparatus for generating structured documents for various presentations and the uses thereof

< Method and system for modifying mail rules

> Method and apparatus for token triggered multithreading

> Reading a selected register in a series of computational units forming a processing pipeline upon expiration of a time delay

~ 00155