Escolar Documentos
Profissional Documentos
Cultura Documentos
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:
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).
Nas trocas de contexto, um registrador responsvel por indicar qual a tabela que deve ser utilizada.
Memria Virtual
Memria Virtual
Paginao:
Tabela de Pginas de A
Memria Virtual
Memria Virtual
Memria Virtual
Endereamento Virtual:
Espao Virtual do Processo A Pgina virtual 1 ... 2 deslocamento 203 ... 067
Memria Virtual
Tabela de Pginas de A
Validade
1 0
Memria Secundria
Page In
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.
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
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.
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;
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;
incio
Pgina Referenciada
Pgina Liberada
incio
A pgina selecionada.
Segmentao
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
Varivel C
...
Segmentao
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.
Benefcio:
Utilizao mais eficiente da memria, permitindo que mais usurios utilizem o recurso.
Compartilhamento de Memria
Cada processo possui segmentos prprios, com suas respectivas estruturas de dados.