antigamente o programador era obrigado a quebrar manualmente o
programa em overlays
hoje em dia é usado memória virtual, sendo o OS responsável por
gerenciar as overlays
SWAP
chaveamento de processos entre MP e disco
pode usar partições fixas ou variáveis
swap-out → da MP para o disco
swap-in → do disco para a MP
Endereçamento
espaço de endereçamento virtual (EEV) → todos os endereços virtuais
que um processo pode gerar
espaço de endereçamento real → todos os endereços de um processo que
a MP aceita
um endereço virtual é traduzido em um real (mapeamento)
MMU aplica técnicas de paginação e segmentação para fazer o
mapeamento
Segmentação
blocos de tamanho arbitrário
EEV é dividido em segmentos virtuais
Paginação
blocos de tamanho fixo
espaço de endereçamento real é dividido em páginas
MP e MS (memória secundária) são dividias em blocos de tamanhos
iguais
página é a unidade básica de transferência de dados
tabela de páginas → armazena as informações sobre elas
page frame → memória física utilizada pela página
MMU define o tamanho das páginas
pode gerar fragmentação interna
página grande → leitura eficiente, tabela menor, maior fragmentação
página pequena → leitura ineficiente, tabela maior, menor
fragmentação
pode usar técnicas como bitmap e linked lists também
os bits de entrada para a tabela de páginas, parte indicam o index
para o endereço q ele mapeia, e a outra parte é q o será concatenado
com a saída (offset)
tabela de páginas podem ser armazenadas em: registradores, MP, CACHE
da MMU
page table base register → endereço físico onde esta a tabela na RAM
page table link register → número da página
Algoritmo de substituição de páginas
quando há um page fault, deve-se escolher uma página para fazer swap
ou ser removida
se a página foi alterada (bit modified) salva-se em disco, se não é
sobreescrita