Buscar

Sistemas Operacionais 8


Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Memória Virtual: 
	paginação e segmentação
André Leon S. Gradvohl, Dr.
andre_gradvohl@yahoo.com
*
Plano de Aula
Memória virtual
Sistemas de memória virtual com paginação
Paginação em múltiplos níveis
Algoritmos de substituição de páginas
Sistemas de memória virtual com segmentação
*
Princípio da memória virtual
Imagem de memória de pi
Memória Secundária
Memória Primária
*
Sistemas de Paginação
O sistema mais simples de memória virtual é a paginação.
Esse sistema consiste na divisão do processo em páginas de tamanho fixo.
Cada página contém um trecho do processo e, a medida que cada trecho precisa ser executado, ele é carregado na memória.
Por questões de desempenho, normalmente mais de uma página do processo está presente na memória.
*
Nomes, Endereços Virtuais e Endereços Reais
Programa Fonte
Módulo Absoluto
Espaço de nomes
Espaço de Endereçamento Virtual de Pi
Imagem Executável
Espaço de endereçamento físico
*
Memória Virtual
Como a ligação entre um endereço real e um endereço virtual varia de acordo com o tempo, é importante ter um mapeamento dinâmico entre endereços.
Esse mapeamento é feito através da tabela de páginas.
O endereço virtual contém um índice para a tabela de páginas que, por sua vez, contém o endereço real e uma indicação se a página está ou não presente na memória.
Há um circuito auxiliar no processador para agilizar esse processamento. Chama-se MMU (Memory Management Unit)
*
Exemplo de sistema de paginação
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
Endereço virtual
Endereço real
Deslocamento
Tabela de páginas
Índice na Tabela
Quadro (frame)
*
Sistema de paginação
Algumas informações complementares no exemplo anterior:
O endereço virtual possui 20 bits. Logo, pode endereçar até 220 posições de memória (1 Mbyte).
O endereço real possui apenas 19 bits. Logo, pode endereçar até 219 posições de memória (512 Kbytes).
O deslocamento indica o tamanho da página ou o tamanho do quadro. No caso, cada página ocupa 216 bytes (64 kbytes).
O índice na tabela de páginas informa o tamanho da tabela. No exemplo, a tabela possui 24 linhas (16 linhas).
*
Exemplo de sistema de paginação multinível
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
Endereço virtual
Endereço real
Deslocamento
Tabela de páginas
Índice na Tabela
Quadro (frame)
...
*
Sistema de paginação multinível
Algumas informações complementares no exemplo anterior:
O sistema multinível não traz nenhum aumento na capacidade do sistema. No entanto, permite uma melhor organização do sistema e uma otimização no uso de memória já que nem todas as tabelas precisam necessariamente estar na memória.
*
Tratamento de falta de páginas
Quando ocorre uma falta de página, o seguinte tratamento ocorre:
Interrompe-se o processo corrente;
O gerenciador de memória localiza a página faltante;
Libera-se um quadro, de acordo com a política e o algoritmo de substituição de páginas;
Carrega-se a página necessária;
Atualiza-se a tabela de páginas;
Restaura o processo.
*
Algoritmos de substituição de páginas
O algoritmo ótimo de substituição de páginas seria implementado para substituir a página que não seria referenciada nas próximas instruções.
Assim, garante-se que não haverão faltas de páginas até que última página carregada tenha sido completamente utilizada.
Infelizmente não há meios de prever quais são as instruções executadas antes de haver uma falta de página.
*
Algoritmos de substituição de páginas
Algoritmo NRU (Not Recently Used):
Neste algoritmo são criadas 4 classes de páginas:
As páginas da classe 0 são as primeiras a serem removidas aleatoriamente.
*
Algoritmos de substituição de páginas
Algoritmo Fifo (First in first out):
Neste algoritmo, as páginas mais antigas são removidas primeiro.
Algoritmo Segunda chance:
No algoritmo Fifo, considera-se apenas o tempo em que a página está na memória e não a quantidade de referências.
Assim, o algoritmo da segunda chance, volta a colocar a página no fim da fila, se ela tiver sido referenciada ultimamente (bit R).
*
Algoritmos de substituição de páginas
Algoritmo LRU (Least Recently Used):
Neste algoritmo, as páginas menos usadas recentemente são removidas primeiro.
Políticas de substituição de páginas:
Política Local: apenas as páginas pertencentes ao processo que gerou a falta de página são consideradas para remoção.
Política Global: todas as páginas alocadas na memória são passíveis de remoção.
*
Segmentação
Uma outra estratégia para memória virtual é a segmentação.
Nesse caso, o programa é dividido em segmentos, onde cada um deles pode ser:
Estruturas de dados;
Funções;
Bibliotecas.
O importante é que cada segmento seja autocontido.
*
Segmentação
Por ser autocontido, cada segmento tem seu próprio espaço de endereçamento e pode crescer independente dos demais segmentos.
A estratégia de segmentação também pode facilitar o compartilhamento de bibliotecas.
Exemplo: DLLs.
O compartilhamento possível na segmentação exige que os segmentos tenham um esquema de proteção contra leitura e escrita.
*
Referências Intersegmentos
	using		segmentA
	…
	call		lab1
	…
	call		[segmentC, lab20]
	…
lab1:	 …
	…
	using		segmentB
	…
	using		segmentC
	…
lab20: …
	…
*
Tradução de endereços na Segmentação
S
<NomeSegmento, NomeOffset>
N
# Segmento
offset
Bt
Segmento ausente
Limite
Base
P
Limite
Relocação
+
+
P/ Registrador de Endereços de Memória
*
Implementação
Segmentação requer hardware especial:
Suporte para o descritor de Segmentos
Suporte para registradores básicos de Segmento (segmento, código, pilha)
Hardware de tradução
*
Segmentação x Paginação
Externa
Interna
Que tipo de fragmentação existe?
Sim
Não
Os procedimentos e dados podem ser distintos e protegidos separadamente?
n
1
Quantos espaços de endereçamento?
Sim
Não
O programador precisa estar ciente da técnica utilizada?
Segmentação
Paginação
Consideração
Sim
Não
O compartilhamento de bibliotecas ou funções é facilitado?
*
Segmentação paginada
A melhor estratégia é, portanto, a combinação entre paginação e segmentação.
Em outras palavras, cada segmento é dividido em páginas.
Para isso, é importante que hajam circuitos específicos para dar suporte à conversão de endereços virtuais em endereços reais.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando