Escolar Documentos
Profissional Documentos
Cultura Documentos
09 Memoria Virtual
09 Memoria Virtual
Ernesto Massa
Memria Virtual
s
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.
s s
Memria Virtual
s
Espao de Endereamento:
Estrutura Vetorial
Memria Secundria
Memria Virtual
s
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
s
Memria Virtual
s
Paginao:
Espao Virtual do Processo A Tabela de Pginas de A
Memria Virtual
Memria Virtual
s
Memria Virtual
s
Endereamento Virtual:
Espao Virtual do Processo A Pgina virtual 1 ... 2 deslocamento 203 ... 067
Memria Virtual
Tabela de Pginas de A
Validade End. do Frame
1 0
2 2 64 4096
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.
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.
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
s
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
s
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.
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.
s s
Aleatrio:
Escolhe uma pgina qualquer do working set, sem critrio; Qualquer pgina tem a mesma chance de ser escolhida; Pouco Eficiente.
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.
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.
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.
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.
incio
Pgina Referenciada
Pgina Liberada
incio
Segmentao
s
Cada bloco possui um tamanho diferente e chamado de Segmento; Existe uma relao direta entre a lgica do programa e diviso em segmentos.
Segmentao
Programa Segmento; Var A: array... C: ... Procedimento X; ... End; Function Y; ... End; Begin ... End.
Memria principal
S.O. Procedimento X Programa Principal Funo Y Array A
programa A
Varivel C
...
Segmentao
s
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
s
Cdigo reentrante:
Cdigo nico, compartilhado por diversos usurios.
Benefcio:
Utilizao mais eficiente da memria, permitindo que mais usurios utilizem o recurso.
Compartilhamento de Memria
s