Memória inacessível - Unreachable memory

Na ciência da computação , a memória inacessível é um bloco de memória alocado dinamicamente onde o programa que alocou a memória não tem mais nenhum ponteiro alcançável que se refira a ele. Da mesma forma, um objeto inacessível é um objeto alocado dinamicamente que não tem referência alcançável a ele. Informalmente, a memória inalcançável é a memória dinâmica que o programa não pode alcançar diretamente, nem chegar começando em um objeto que pode alcançar diretamente e depois seguindo uma cadeia de referências de ponteiro.

Em implementações de alocação de memória dinâmica que empregam um coletor de lixo , os objetos são recuperados depois que se tornam inacessíveis. O coletor de lixo é capaz de determinar se um objeto está acessível; qualquer objeto que não esteja mais acessível pode ser desalocado. Muitas linguagens de programação (por exemplo, Java , C # , D , Dylan ) usam a coleta de lixo automática.

Em contraste, quando a memória se torna inacessível em implementações de alocação de memória dinâmica que requerem desalocação explícita, a memória não pode mais ser desalocada explicitamente . Memória inacessível em sistemas que usam gerenciamento de memória manual resulta em vazamento de memória .

Alguns coletores de lixo implementam referências fracas . Se um objeto for alcançável apenas por meio de referências fracas ou cadeias de referências que incluem uma referência fraca, então o objeto é considerado fracamente alcançável . O coletor de lixo pode tratar um gráfico de objeto fracamente alcançável como inacessível e desalocá-lo. (Por outro lado, as referências que evitam que um objeto seja coletado como lixo são chamadas de referências fortes ; um objeto fracamente alcançável é inacessível por qualquer cadeia que consiste apenas em referências fortes.) Algumas linguagens orientadas a objetos coletadas como lixo , como Java e Python , apresentam fraco referências. O pacote Java java.lang.ref oferece suporte a referências suaves, fracas e fantasmas, resultando em estados adicionais de alcançabilidade do objeto suavemente alcançável e alcançável fantasma .

A memória inacessível geralmente está associada ao envelhecimento do software .

links externos

  • Nicholas, Ethan (4 de maio de 2006). "Compreendendo as referências fracas" . java.net . Arquivado do original em 19 de agosto de 2010 . Página visitada em 1 de outubro de 2010 . Link externo em |publisher= ( ajuda )