Vous êtes sur la page 1sur 20

Memria Virtual

Memria Virtual
Quando a capacidade de endereamento do
processador no corresponde MP
instalada, os endereos gerados so
endereos virtuais (abstraes para
endereos no reais)
Na maioria dos SOs modernos as aplicaes
e processos sempre fazem referncias
memria usando endereos virtuais.

Nestes casos a memria virtual est sempre em


uso

Memria Virtual

Mapeamentos
Primeiro caso: Capacidade de endereamento
menor que a memria fsica instalada
Mapeamento feito sobre uma janela ou
subgrupo da MP
Segundo caso: Capacidade de endereamento =
memria instalada Mapeamento trivial. Cada
endereo corresponde uma posio na memria
Terceiro caso: Capacidade de endereamento >
que memria instalada Soluo uso de
memria virtual

Memria virtual

O processador faz uso de endereos virtuais


e o Gerenciador de Memria Virtual se
encarrega de fazer os mapeamentos.

Memria Virtual

No podendo ficar limitado quantidade de


memria fsica instalada e nem baixa
velocidade de acesso da memria
secundria (virtual), utiliza-se uma
hierarquia:

Memria Virtual
Se os dados e instrues que o processador
precisa esto na MP, no h problema... O
acesso feito de imediato
Se os dados que o processador precisa
esto endereados na memria virtual o
processamento interrompido para que o
gerenciador de memria traga os blocos
necessrios da memria secundria para a
MP

Condensao de referncia
Programas tendem a se concentrar, a cada
intervalo de tempo, em pequenas regies
dentro do espao de endereamento
disponvel.
Isto faz com que todas as instrues (ou
quase todas) estejam disponveis na MP,
diminuindo os acessos Memria
Secundria.

Condensao de referncia

Razes para existir condensao:


Programas so escritos de forma seqencial e as
prximas instrues a serem executadas esto
normalmente prximas corrente
Programas apresentam laos de repetio que
so executados diversas vezes
Dados so organizados seqencialmente (por
exemplo em vetores e tabelas)

Medidas de desempenho
Custo mdio por bit (relao entre MP e MS)
Taxa de acerto hit ratio (taxa em que os
dados esto disponveis diretamente na MP)
Tempo mdio de acesso (considerando
acesso MP e MS)
Taxa de aproveitamento da MP (o ideal
que a MP no tenha espaos vagos)

Blocos de movimentao
Swapping
a principal operao sobre as memrias
virtuais. Consiste em movimentar um bloco
entre os nveis da hierarquia de memria

Um bom sistema de memria virtual deve tratar


destas questes:
Quando movimentar ?
Onde colocar o bloco ?
Qual o tamanho ideal de um bloco ?

Estrutura de uma memria virtual

Memria Virtual Mapa de


memria
O mapa de memria pode ser
implementado em registradores especiais
de alta velocidade, na prpria MP ou em
memrias especiais.
Geralmente contm:

Lista de espaos ocupados


Lista de espaos vazios
Endereos mapeados na MS

Memria Virtual Substituio


de blocos
O principal objetivo de se ter uma poltica
de substituio de blocos fazer com que a
taxa de acertos seja maximizada (hit ratio)
Quando um bloco referenciado no est
disponvel na MP ocorre uma condio
conhecida como acesso falho memria
(memory fault)

Memria Virtual Substituio


de blocos

FIFO ( First-in-first-out)
Seleciona para substituio o mais antigo bloco,
ou seja, o que est h mais tempo na MP
Vantagem: fcil de se implementar. Um nr de
seqncia associado a cada bloco quando ele
alocado na MP. Quando um bloco precisa ser
substitudo, basta eliminar o de menor seqncia.
Desvantagem: Um bloco frequentemente utilizado
pode ser substitudo por ser o mais antigo (sendo
o mais freqentemente utilizado, as chances de
ser o mais antigo aumentam)

Memria Virtual Substituio


de blocos

LRU (Least recently used)


Seleciona para substituio o bloco menos
recentemente utilizado pelo processador.
Desvantagem: Dificuldade do SO manter uma
estatstica dos blocos menos recentemente
utilizados. Estratgia possvel 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 so
decrementados. O bloco menos recentemente
utilizado aquele cujo contador apresentar menor
nmero.

Memria Virtual Substituio


de blocos
LFU (Least Frenquently Used): o controlador de
cache escolhe o bloco que tem tido menos
acessos (menos referncias) por parte da CPU
Escolha aleatria

16

Segmentos e pginas
Os blocos de memria podem ser
organizados como segmentos ou como
pginas.
Um segmento pode ser considerado como
um bloco de palavras seqenciais
logicamente relacionadas (sub-rotina, pilha,
matriz) .
Segmentos possuem tamanhos variveis.
Sua principal propriedade a coeso
Pginas tem tamanho fixo, sem preocupar
com a coeso.

Segmentos

Vantagem:
Respeitam a modularidade e a lgica dos
programas

Desvantagem: Custo de se gerenciar o


tamanho varivel dos segmentos durante a
alocao e a substituio

Pginas

Vantagem:
Simplicidade de se gerenciar o tamanho fixo nas
alocaes e substituies (como tem tamanho
fixo, basta trocar uma pgina por outro no
frame)

Desvantagem:
No respeitam a organizao lgica dos
programas.

Segmentao paginada

Tenta resolver as desvantagens dos dois


modelos:
Cada segmento dividido em pginas de
tamanho fixo

Vous aimerez peut-être aussi