A Unidade de Gerenciamento de Memória (MMU) converte endereços lógicos em endereços físicos por meio de um processo chamado tradução de endereços. Aqui está uma explicação simplificada de como funciona:
1. Tabela de páginas:O MMU mantém uma tabela de páginas, que é uma estrutura de dados que mapeia endereços lógicos para endereços físicos. A tabela de páginas é organizada em vários níveis, com cada nível representando uma parte diferente do endereço lógico.
2. Divisão de endereço:quando um processo faz referência a um endereço lógico, a MMU divide o endereço em várias partes:
- Número da página:São os bits de ordem superior do endereço lógico e identificam uma página específica na memória.
- Deslocamento de página:são os bits de ordem inferior do endereço lógico e identificam o local específico na página.
3. Pesquisa na tabela de páginas:O MMU usa o número da página para procurar a entrada correspondente na tabela de páginas. Cada entrada na tabela de páginas contém o endereço físico da página correspondente.
4. Tradução de endereços:Se a entrada da tabela de páginas for válida (ou seja, a página estiver na memória), a MMU combina o endereço físico da página com o deslocamento da página para obter o endereço físico final. Este endereço físico pode então ser usado para acessar os dados ou instruções na memória.
5. Falhas de página:Se a entrada da tabela de páginas for inválida (ou seja, a página não está na memória), a MMU gera uma exceção de falha de página. O sistema operacional então lida com a falha de página trazendo a página necessária para a memória a partir do armazenamento secundário (como um disco) e atualizando a tabela de páginas.
Este processo de tradução de endereços permite que a MMU gerencie a memória de forma eficiente e forneça recursos de memória virtual aos processos, permitindo-lhes acessar a memória além do espaço de endereço físico alocado.