Lexico
...el poder de lo simple...
Marzo.4.2010

Colecciones de objetos en la RAM


Las collecciones son organizaciones de objetos que aportan flexibilidad de manejo al programador. Son estructuras para composición de grupo de datos o estructuras de representación de información. Su disposición en la memoria RAM abarca dos grandes tendencias conocidas como representación estática o rígida una  y la otra como representación dinámica o flexible. La primera significa que se reserva espacio en memoria para todo el grupo de objetos en una sola petición al administrador de la memoria del sistema operativo quedando congelado tanto el tamaño del grupo y el tipo de elementos que le conformarán. Su posterior uso, por consiguiente, estará limitado a esas dos restricciones. En la segunda modalidad la creación o reserva de espacio en memoria no se hace para todo el grupo de una vez sino que se van creando o reservando espacio para cada elemento individual del grupo y por ello es posible inclusive hacer mezclas de tipos de objetos.  La segunda forma aporta aún más flexibilidad de manejo del grupo. Los nombres genéricos usuales en el argot son arreglos para el primer caso y arreglos dinámicos para el segundo caso. También se les denomina vectores, matrices, arreglos unidimensionales, arreglos bidimensionales, arreglos tridimensionales en el primercaso y cadenas lineales, cadenas no lineales, listas, árboles, redes....según la particularidad en su representación en el segundo caso.

El primer caso aporta acceso directo a sus elementos pues ellos además de ser del mismo tamaño se encuentran ubicados en posiciones contiguas lo que permite que sin necesidad de visitar los elementos previos pueda fácilmente ser calculada su ubicación real mediante una función de direccionamiento que convierta su posición relativa al grupo en posición absoluta en la RAM. Su inconveniente es que resulta costoso su uso cuando se trata de aplicar en situaciones que requieren permanente recomposición del grupo, por ejemplo cuando se requiere insertar o suprimir elementos reiteradamente, puesto que deben efectuarse corrimientos de elementos en un sentido o en el inverso. Para la inserción de elementos, además ha de tenerse espacios reservados previamente para ello desde el momento mismo de creación de la estructura que se hace en una sola petición de espacio en memoria. Ésto aporta cierta rigidez organizacional.

En el segundo caso impone acceso secuencial debido a que la estructura se va formando paulatinamente mediante sucesivas solicitudes individuales de memoria para cada elemento y en consecuencia ellos quedan ubicados en forma dispersa en la RAM debido a que entre una y otra solicitudes de memoria otras estructuras del mismo programa u otros diferentes han hecho también solicitudes de memoria. Ésto impone una carga adicional al proceso pues los elementos deben encadenarse para poder saberse dónde se ubican. Luego para visitar a un elemento ha de haberse visitado previamente otro que pueda informar dónde reside el de interés. Por el contrario, éste tipo de estructuras aportar gran flexibilidad organizacional puesto que no se impone reservar los espacios de memoria en un solo bloque contiguo y en consecuencia es altamente eficiente en procesos que enmarquen inserciones y retiros continuamente.