Los grupos de memoria , también llamados asignación de bloques de tamaño fijo , son el uso de grupos para la administración de memoria que permite la asignación dinámica de memoria . La asignación de memoria dinámica se puede lograr, y se ha logrado, mediante el uso de técnicas como malloc y el operador new de C++ ; Aunque son implementaciones establecidas y confiables, sufren fragmentación debido a los tamaños de bloque variables, no es recomendable utilizarlas en un sistema de tiempo real debido al rendimiento. Una solución más eficiente es preasignar una cantidad de bloques de memoria del mismo tamaño, denominado grupo de memoria . La aplicación puede asignar, acceder y liberar bloques representados por identificadores en tiempo de ejecución .
Muchos sistemas operativos en tiempo real utilizan grupos de memoria, como Transaction Processing Facility .
Algunos sistemas, como el servidor web Nginx , utilizan el término grupo de memoria para referirse a un grupo de asignaciones de tamaño variable que luego pueden desasignarse todas a la vez. A esto también se le conoce como región ; consulte administración de memoria basada en regiones .
Un módulo de grupo de memoria simple puede asignar, por ejemplo, tres grupos en tiempo de compilación con tamaños de bloque optimizados para la aplicación que implementa el módulo. La aplicación puede asignar, acceder y liberar memoria a través de la siguiente interfaz:
unsigned int
. El módulo puede interpretar el identificador internamente dividiéndolo en índice de grupo, índice de bloque de memoria y una versión. El índice de bloque de memoria y grupo permite un acceso rápido al bloque correspondiente con el identificador, mientras que la versión, que se incrementa con cada nueva asignación, permite la detección de identificadores cuyo bloque de memoria ya está liberado (debido a que los identificadores se retuvieron demasiado tiempo).Beneficios
Desventajas