Alocação dinâmico
A alocação dinâmica ou também conhecida como técnica de base e limite é a técnica mais elementar de tradução de endereçosao consistir na soma do valor de deslocamento em relação ao endereço 0 da memória física e o endereço virtual.
Há o suporte do hardware (MMU) ao utilizar de registradores para armazenar a base e o limite do espaço de endereçamento na MMU.
Ao iniciar um processo, o sistema operacional atribui ao processo uma base e um limite.
Note
A “base” também a chamado de offset, pois se trata de uma deslocamento em relação à posição 0 do endereço físico.
De forma resumida, o cálculo do endereço físico pode ser feito a partir da seguinte fórmula:
O limite garante que o acesso esteja dentro do espaço de endereçamento.
Note
Caso o limite seja ultrapassado, a CPU lançará uma erro e o sistema operacional encerrará o processo.
Até agora vimos como essa técnica define os limites do espaço de endereçamento e como é feita a conversão (tradução) do endereço virtual para o físico, porém voltando ao começo e analisando o nome dessa técnica “alocação dinâmica”, pode surgir a seguinte dúvida:
Question
Por que “dinâmica”?
Esse termo “dinâmica” refere-se a atribuição e alteração da base e limite para o processo acontece em tempo de execução.
Dessa forma, se o sistema operacional precisar realocar e redimensionar o processo, ele precisa realizar as seguintes tarefas:
- Interromper (ou suspender) o processo
- Tirar o processo da fila de execução
- Copiar os dados para o novo endereço na memória principal
- Alterar os valores salvos de base e limite
- Colocar o processo na fila de execução
Referências
Aula de Sistemas Operacionais do dia 22/10/2024