9 Memoria Virtual
-
Upload
viviane-alves -
Category
Documents
-
view
223 -
download
3
description
Transcript of 9 Memoria Virtual
Memória Virtual
Quando a capacidade de endereçamento do processador não corresponde à MP instalada, os endereços gerados são endereços virtuais (abstrações para endereços não reais)
Na maioria dos SOs modernos as aplicações e processos sempre fazem referências à memória usando endereços virtuais.◦ Nestes casos a memória virtual está sempre em
uso
Memória Virtual
Mapeamentos◦ Primeiro caso: Capacidade de endereçamento
menor que a memória física instalada Mapeamento feito sobre uma “janela” ou subgrupo da MP
◦ Segundo caso: Capacidade de endereçamento = memória instalada Mapeamento trivial. Cada endereço corresponde à uma posição na memória
◦ Terceiro caso: Capacidade de endereçamento > que memória instalada Solução é uso de memória virtual
Memória Virtual
O processador faz uso de endereços virtuais e o Gerenciador de Memória Virtual se encarrega de fazer os mapeamentos.
Memória virtual
Não podendo ficar limitado à quantidade de memória física instalada e nem à baixa velocidade de acesso da memória secundária (virtual), utiliza-se uma hierarquia:
Memória Virtual
Se os dados e instruções que o processador precisa estão na MP, não há problema... O acesso é feito de imediato
Se os dados que o processador precisa estão endereçados na memória virtual o processamento é interrompido para que o gerenciador de memória traga os blocos necessários da memória secundária para a MP
Memória Virtual
Programas tendem a se concentrar, a cada intervalo de tempo, em pequenas regiões dentro do espaço de endereçamento disponível.
Isto faz com que todas as instruções (ou quase todas) estejam disponíveis na MP, diminuindo os acessos à Memória Secundária.
Condensação de referência
Razões para existir condensação:◦ Programas são escritos de forma seqüencial e as
próximas instruções a serem executadas estão normalmente próximas à corrente
◦ Programas apresentam laços de repetição que são executados diversas vezes
◦ Dados são organizados seqüencialmente (por exemplo em vetores e tabelas)
Condensação de referência
Custo médio por bit (relação entre MP e MS) Taxa de acerto – hit ratio (taxa em que os
dados estão disponíveis diretamente na MP) Tempo médio de acesso (considerando
acesso à MP e MS) Taxa de aproveitamento da MP (o ideal é
que a MP não tenha espaços “vagos”)
Medidas de desempenho
Swapping É a principal operação sobre as memórias
virtuais. Consiste em movimentar um bloco entre os níveis da hierarquia de memória◦ Um bom sistema de memória virtual deve tratar
destas questões: Quando movimentar ? Onde colocar o bloco ? Qual o tamanho ideal de um bloco ?
Blocos de movimentação
Estrutura de uma memória virtual
O mapa de memória pode ser implementado em registradores especiais de alta velocidade, na própria MP ou em memórias especiais.
Geralmente contêm:◦ Lista de espaços ocupados◦ Lista de espaços vazios◦ Endereços mapeados na MS
Memória Virtual – Mapa de memória
O principal objetivo de se ter uma política de substituição de blocos é fazer com que a taxa de acertos seja maximizada (hit ratio)
Quando um bloco referenciado não está disponível na MP ocorre uma condição conhecida como “acesso falho à memória” (memory fault)
Memória Virtual – Substituição de blocos
FIFO ( First-in-first-out)◦ Seleciona para substituição o mais antigo bloco,
ou seja, o que está há mais tempo na MP◦ Vantagem: fácil de se implementar. Um nr de
seqüência é associado a cada bloco quando ele é alocado na MP. Quando um bloco precisa ser substituído, basta eliminar o de menor seqüência.
◦ Desvantagem: Um bloco frequentemente utilizado pode ser substituído por ser o mais antigo (sendo o mais freqüentemente utilizado, as chances de ser o mais antigo aumentam)
Memória Virtual – Substituição de blocos
LRU (Least recently used)◦ Seleciona para substituição o bloco menos
recentemente utilizado pelo processador.◦ Desvantagem: Dificuldade do SO manter uma
estatística dos blocos menos recentemente utilizados. Estratégia possível é atribuir contadores (age registers) a cada bloco na MP. Toda vez que o bloco é referenciado seu contador é atualizado para o maior valor positivo. De tempos em tempos, todos os contadores são decrementados. O bloco menos recentemente utilizado é aquele cujo contador apresentar menor número.
Memória Virtual – Substituição de blocos
Memória Virtual – Substituição de blocos
◦ LFU (Least Frenquently Used): o controlador de cache escolhe o bloco que tem tido menos acessos (menos referências) por parte da CPU
◦ Escolha aleatória
16
Os blocos de memória podem ser organizados como segmentos ou como páginas.
Um segmento pode ser considerado como um bloco de palavras seqüenciais logicamente relacionadas (sub-rotina, pilha, matriz) .
Segmentos possuem tamanhos variáveis. Sua principal propriedade é a coesão
Páginas tem tamanho fixo, sem preocupar com a coesão.
Segmentos e páginas
Vantagem:◦ Respeitam a modularidade e a lógica dos
programas Desvantagem: Custo de se gerenciar o
tamanho variável dos segmentos durante a alocação e a substituição
Segmentos
Vantagem:◦ Simplicidade de se gerenciar o tamanho fixo nas
alocações e substituições (como tem tamanho fixo, basta trocar uma página por outro no “frame”)
Desvantagem:◦ Não respeitam a organização lógica dos
programas.
Páginas
Tenta resolver as desvantagens dos dois modelos:◦ Cada segmento é dividido em páginas de
tamanho fixo
Segmentação paginada