Você está na página 1de 29

Memria Virtual

Ernesto Massa

Memria Virtual

Tcnica onde memria principal e secundria so combinadas de forma a emular uma memria de tamanho maior que a memria principal (real);
A memria secundria usada como extenso da memria principal; Permite um maior nmero de processos compartilhando a memria principal; No vincula o endereamento dos programas aos endereos fsicos da memria principal; Programas no ficam mais limitados ao tamanho da memria principal disponvel; Minimiza o problema de fragmentao.

Memria Virtual

Espao de Endereamento:

Memria Principal Espao de Endereamento Real

Memria Virtual Espao de Endereamento Virtual Mapeamento

Estrutura Vetorial

Memria Secundria

Memria Virtual

Mapeamento:
Realizado por hardware + S.O. nos sistemas atuais, atravs da MMU (Memory Management Unit - Unidade de Gerenciamento de Memria).

Cada processo com uma tabela de mapeamento prpria.


No momento da execuo, o endereo virtual mapeado para o endereo fsico, pois o processador s acessa endereos do espao real;

Nas trocas de contexto, um registrador responsvel por indicar qual a tabela que deve ser utilizada.

Memria Virtual

Memria Virtual por Paginao:


Memria Virtual e Real divididas em blocos de mesmo tamanho (pginas);
Pginas virtuais; Pginas reais ou frames;

As tabelas de pginas mapeiam os blocos de informaes:


Quanto maior o bloco, menor o tamanho das tabelas; Quanto maior o bloco, maior o tempo de transferncia do bloco entre memria principal e secundria.

Memria Virtual

Paginao:

Memria Principal Espao de Endereamento Real

Espao Virtual do Processo A

Tabela de Pginas de A

Memria Virtual

Espao Virtual do Processo B

Tabela de Pginas de B Memria Page In Secundria Page Fault

Memria Virtual

Memria Virtual por Paginao:


Endereo Virtual = N da pgina virtual + deslocamento; Um bit de validade (na tabela de pginas) indica se a pgina j se encontra na memria principal ou no.

Taxa de Paginao = N de Page Fault em um intervalo de tempo.


Quando ocorre um page fault, o processo em questo passa ao estado de espera.

Memria Virtual

Endereamento Virtual:
Espao Virtual do Processo A Pgina virtual 1 ... 2 deslocamento 203 ... 067

Memria Principal Espao de Endereamento Real

Memria Virtual

Endereo Fsico 2 203

Tabela de Pginas de A
Validade

1 0

End. do Frame 2 2 64 4096

Memria Secundria

Page In

Polticas de Busca de Pginas

Determinao de quando uma pgina deve ser carregada para a memria.


Paginao por demanda:
Transferncia de pginas para memria principal quando so referenciadas. Apenas as pginas necessrias so transferidas.

Paginao antecipada:
Alm da pgina referenciada, so carregadas outras pginas que tambm podem (ou no) ser referenciadas futuramente. Economia de tempo na cpia do conjunto de pginas. Risco de trabalho desnecessrio.

Polticas de Alocao de Pginas:

Determina quantos frames cada processo pode manter na memria principal.


Alocao Fixa:
Nmero mximo de frames (pginas) por processo. Caso o limite seja atingido, alguma pgina deve ser descartada. O limite de pginas determinado na criao do processo. Limite de pginas mal dimensionado:
Se for pequeno: Muitos page faults; Degradao do sistema; Se for grande: Espao ocupado maior que o necessrio; Reduz o grau de multiprogramao.

Polticas de Alocao de Pginas:


Alocao Varivel:
O nmero mximo de frames de um processo pode variar em funo de sua taxa de paginao. Processos com alta taxa de paginao podem aumentar o seu limite mximo de frames. Processos com baixa taxa de paginao podem ter os seus limites mximos de frames reduzido.

Polticas de Substituio de Pginas:

Seleo de qual, entre as diversas pginas alocadas deve ser liberada.


Necessidade de verificao se a pgina foi alterada (bit de modificao) No caso da pgina liberada tiver sofrido modificao, esta dever antes ser gravada no Arquivo de Paginao (page out).

Note que as pginas de cdigo no podem ser modificadas, logo no sofrem page out.

Polticas de Substituio de Pginas:

Poltica de Substituio Local:


Apenas as pginas do processo que gerou o page fault so candidatas relocao.

Poltica de Substituio Global:


Todas as pginas de todos os processos so candidatas relocao. Algumas pginas nunca so candidatas relocao, como por exemplo as do ncleo do S.O.

Polticas de Alocao X Polticas de Substituio

Relacionamento entre as Polticas de Alocao e Polticas de Substituio de pginas.


Alocao Fixa:
Substituio Local.

Alocao Varivel:
Substituio Global. Substituio Local.
O SO avalia a taxa de paginao de um processo e altera o seu limite mximo de frames.

Working Set

Conjunto das pginas referenciadas por um processo em um determinado intervalo de tempo.


Princpio da localidade
Localidade Espacial:
Aps a referncia um endereo, existe a tendncia serem feitas referncias endereos prximos.

Localidade Temporal:
Aps a referncia um endereo, existe a tendncia serem feitas referncias ao mesmo endereo em um curto intervalo de tempo.

Para programas desenvolvidos utilizando tcnicas estruturadas, o princpio da localidade quase sempre vlido.

Working Set

Exemplo:
Perodos de alta taxa de paginao, intercalados por perodos de estabilidade.

Pginas de um Processo
Pagina Pagina Pagina Pagina Pagina Pagina Pagina Pagina 1 2 3 4 5 6 7 8

Working Set

Trashing: Problema provocado quando um processo possui um nmero insuficiente de frames na memria, resultando em uma alta taxa de paginao.

Algoritmos de Substituio de Pginas:

Seleo do frame com a menor chance de ser referenciado.


Principais algoritmos de substituio de pginas: timo:
Hipottico; Somente para efeito de avaliao de outros algoritmos.

Aleatrio:
Escolhe uma pgina qualquer do working set, sem critrio;
Qualquer pgina tem a mesma chance de ser escolhida; Pouco Eficiente.

Algoritmos de Substituio de Pginas:

First-In-First-Out (FIFO):
A pgina que estiver h mais tempo na memria ser a prxima pgina a ser escolhida para sair do Working Set; Implementado por uma fila FIFO;

Pode ser desvantagem para:


Caso de haver loops (pgina constantemente referenciada, que foi carregada no incio); Caso de utilitrios do sistema operacional que so constantemente utilizados.

Algoritmos de Substituio de Pginas:

Least-Recently-Used (LRU):
Seleciona a pgina h mais tempo sem ser referenciada; Boa estratgia, mas gera muito overhead:
Devido necessidade de atualizar o momento do ltimo acesso, de cada pgina referenciada; Devido complexidade do algoritmo de busca destas pginas.

Algoritmos de Substituio de Pginas:

Not-Recently-Used (NRU):
Seleciona pginas no usadas recentemente; Um Flag de referncia associado a cada entrada na tabela de pginas e indica se a pgina foi referenciada ou no;

Inicialmente todas as pginas esto com Flag = 0 indicando que ainda no foram acessadas;
medida que forem sendo referenciadas o Flag modificado pelo hardware; Depois de um certo tempo pode-se saber que pginas no foram referenciadas.

Algoritmos de Substituio de Pginas:

Least-Frequently-Used (LFU):
A pgina menos referenciada selecionada; Um contador controla o nmero de referncias feitas a cada pgina;

Ser selecionada a pgina com o menor contador;


Problema:
As pginas que entraram mais recentemente no Working Set tero maior probabilidade de serem selecionadas.

Algoritmos de Substituio de Pginas:

FIFO com Buffer de pginas:


Lista de Pginas Livres
fim

incio

Pgina Alocada fim

Pgina Referenciada

Pgina Liberada

Lista de Pginas Alocadas

incio

Algoritmos de Substituio de Pginas:

FIFO Circular (CLOCK):


Combinao de uma lista circular com um bit de referncia. Caso Br=1, incrementa o ponteiro; BR=0. caso BR=0, Br=1 Br=0 Br=0 Br=0 Br=1 Br=0

A pgina selecionada.

Segmentao

Tcnica de gerncia de memria onde os processos so divididos logicamente em:


Blocos de sub-rotinas; Blocos de estruturas de dados.

Cada bloco possui um tamanho diferente e chamado de Segmento; Existe uma relao direta entre a lgica do programa e diviso em segmentos.

Segmentao
Memria principal Programa Segmento; Var A: array... C: ... Procedimento X; ... End; Function Y; ... End;
S.O. Procedimento X Programa Principal Funo Y Array A
programa A

Begin ... End.

Varivel C

...

Segmentao

A Segmentao possui funcionamento anlogo Paginao.


Mapeamento:
Os segmentos so mapeados atravs da tabela de mapeamento de segmento (TMS);

O Endereo virtual formado pelo:


Nmero do segmento;

Deslocamento dentro do segmento;

Segmentao com Paginao

Tcnica onde os processos so divididos logicamente em Segmentos e cada segmento dividido fisicamente em Pginas.
Endereo virtual formado por:
Nmero do segmento; Nmero de pgina dentro do segmento; Deslocamento dentro da pgina.

Compartilhamento de Memria

Cdigo reentrante:
Cdigo nico, compartilhado por diversos usurios.

Sistemas com memria virtual:


As tabelas de pginas/segmentos de processos distintos, apontam para os mesmos frames na memria principal.

Benefcio:
Utilizao mais eficiente da memria, permitindo que mais usurios utilizem o recurso.

Compartilhamento de Memria

No compartilhamento, tcnica da segmentao leva vantagem em relao paginao pois:


O compartilhamento de segmentos (compartilhamento lgico);

Cada processo possui segmentos prprios, com suas respectivas estruturas de dados.

Você também pode gostar