Gestão de memória é o processo de controlar e coordenar a memória do computador, atribuindo porções chamadas blocos a vários programas em execução para otimizar o desempenho geral do sistema. O gerenciamento de memória reside no hardware, no SO (sistema operacional) e em programas e aplicativos.
No hardware, o gerenciamento de memória envolve componentes que armazenam fisicamente dados, como chips de RAM (memória de acesso aleatório), caches de memória e SSDs baseados em flash (unidades de estado sólido). No sistema operacional, o gerenciamento de memória envolve a alocação (e realocação constante) de blocos de memória específicos para programas individuais conforme as demandas do usuário mudam. No nível da aplicação, o gerenciamento de memória garante a disponibilidade de memória adequada para os objetos e estruturas de dados de cada programa em execução o tempo todo. A gestão da memória da aplicação combina duas tarefas relacionadas, conhecidas como alocação e reciclagem.
- Quando o programa solicita um bloco de memória, uma parte do gestor da memória chamado alocador atribui esse bloco ao programa.
- Quando um programa não precisa mais dos dados em blocos de memória previamente alocados, esses blocos ficam disponíveis para realocação. Esta tarefa pode ser feita manualmente (pelo programador) ou automaticamente (pelo gerenciador de memória).