stringtranslate.com

Memoria inalcanzable

En programación informática , la memoria inalcanzable es un bloque de memoria asignada dinámicamente donde el programa que asignó la memoria ya no tiene ningún puntero alcanzable que haga referencia a ella. De manera similar, un objeto inalcanzable es un objeto asignado dinámicamente que no tiene ninguna referencia alcanzable a él. De manera informal, la memoria inalcanzable es la memoria dinámica a la que el programa no puede acceder directamente, ni llegar a ella comenzando en un objeto al que puede acceder directamente y luego siguiendo una cadena de referencias de puntero.

En las implementaciones de asignación dinámica de memoria que emplean un recolector de elementos no utilizados , los objetos se recuperan cuando se vuelven inalcanzables. El recolector de elementos no utilizados puede determinar si un objeto es accesible; cualquier objeto que se determine que ya no es accesible puede desasignarse . Muchos lenguajes de programación (por ejemplo, Java , C# , D , Dylan , Julia ) utilizan la recolección automática de elementos no utilizados.

Por el contrario, cuando la memoria se vuelve inalcanzable en implementaciones de asignación de memoria dinámica que requieren una desasignación explícita, la memoria ya no se puede desasignar explícitamente. La memoria inalcanzable en sistemas que utilizan la administración de memoria manual da como resultado una pérdida de memoria .

Algunos recolectores de basura implementan referencias débiles . Si un objeto es accesible solo a través de referencias débiles o cadenas de referencias que incluyen una referencia débil, entonces se dice que el objeto esdébilmente alcanzable . El recolector de basura puede tratar ungráfico de objetoscomo inalcanzable y desasignarlo. (Por el contrario, las referencias que impiden que un objeto sea recolectado como basura se denominanreferencias fuertes; un objeto débilmente alcanzable es inalcanzable por cualquier cadena que consista únicamente en referencias fuertes). Algunosorientados a objetos, comoJavayPython, cuentan con referencias débiles. Elpaquete Java java.lang.refadmite referencias suaves, débiles y fantasmas, lo que da como resultado los estados de accesibilidad de objetos adicionalessoftly reachableyphantom reachable.

La memoria inalcanzable (en lenguajes como C, que no recuperan) suele estar asociada al envejecimiento del software .

Enlaces externos