9 Memoria Virtual

20
Memória Virtual

description

Arquitetura de Computadores

Transcript of 9 Memoria Virtual

Page 1: 9 Memoria Virtual

Memória Virtual

Page 2: 9 Memoria 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

Page 3: 9 Memoria 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

Page 4: 9 Memoria 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

Page 5: 9 Memoria 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

Page 6: 9 Memoria 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

Page 7: 9 Memoria 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

Page 8: 9 Memoria Virtual

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

Page 9: 9 Memoria Virtual

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

Page 10: 9 Memoria Virtual

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

Page 11: 9 Memoria Virtual

Estrutura de uma memória virtual

Page 12: 9 Memoria 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

Page 13: 9 Memoria Virtual

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

Page 14: 9 Memoria Virtual

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

Page 15: 9 Memoria Virtual

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

Page 16: 9 Memoria Virtual

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

Page 17: 9 Memoria Virtual

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

Page 18: 9 Memoria Virtual

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

Page 19: 9 Memoria Virtual

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

Page 20: 9 Memoria Virtual

Tenta resolver as desvantagens dos dois modelos:◦ Cada segmento é dividido em páginas de

tamanho fixo

Segmentação paginada