Cálculo de um endereço físico a partir de um endereço lógico requer uma unidade de gerenciamento de memória (MMU) e conhecimento da (s) tabela (s) de página (s). O processo envolve várias etapas:
1. Segmentação (se aplicável): * Alguns sistemas usam segmentação ao lado da paginação. Se a segmentação for usada, o endereço lógico será dividido primeiro em um número de segmento e um deslocamento dentro desse segmento. O número do segmento é então usado para localizar o descritor de segmento correspondente na tabela do segmento. O descritor do segmento contém informações como o endereço base do segmento na memória física e seu limite (tamanho).
* Se o número do segmento for inválido ou o deslocamento estiver além do limite do segmento, ocorre uma falha de segmentação.
2. Paging: * Se a segmentação é ou não usada ou não, a paginação está quase sempre envolvida em sistemas modernos. O endereço lógico (ou o deslocamento da etapa de segmentação anterior) é dividido em um número de página e um deslocamento da página.
* O número
página é usado como um índice em uma tabela de página
. Esta tabela mapeia os números de página virtual para números de quadros físicos. Cada entrada na tabela de páginas contém o número do quadro físico (ou um ponteiro para uma tabela de página de nível inferior em paginação de vários níveis), onde a página correspondente reside na memória física.
*
Paging multi-nível: Para gerenciar espaços de endereço muito grandes com eficiência, os sistemas geralmente usam tabelas de página de vários níveis (por exemplo, dois níveis, três níveis etc.). Isso evita ter uma única tabela de página gigantesca. Nesse caso, o número da página é dividido ainda mais para indexar níveis sucessivamente mais baixos das tabelas de página até que o número final de quadros físicos seja encontrado. Cada entrada em uma tabela de página de nível superior aponta para o próximo nível.
* Se uma entrada da tabela de página não estiver presente (falha na página), o sistema operacional deve carregar a página necessária do armazenamento secundário (por exemplo, disco rígido) na memória principal. Isso envolve suspender o processo atual.
3. Cálculo de endereço físico: * Depois que o número do quadro físico é obtido na tabela (s) de página (s), o endereço físico
é calculado concatenando o número de quadros físicos e a página
deslocamento . O deslocamento da página permanece inalterado durante todo o processo de tradução.
fórmula (simplificada para paginação de nível único): `Endereço físico =(número da página * Tamanho da página) + Offset da página`
Onde:
*
Número da página: Obtido do endereço lógico.
*
Tamanho da página: Uma constante definida pelo sistema (por exemplo, 4KB).
*
deslocamento da página: Obtido do endereço lógico.
em resumo: O MMU usa o endereço lógico e as tabelas de página para executar a tradução de endereço. O processo envolve procurar entradas nas tabelas da página para encontrar o número do quadro físico correspondente ao número da página lógica e, em seguida, combinando isso com o deslocamento da página para obter o endereço físico final. A complexidade aumenta com o uso da segmentação e da paginação de vários níveis. O sistema operacional desempenha um papel crucial no gerenciamento das tabelas de página e no manuseio de falhas da página.