Sistemas Operacionais
Módulo 2
Gerência de Memória Virtual
Prof. Maxwell Anderson
www.maxwellanderson.com.br
Agenda
• Conceitos básicos
• Espaço de endereçamento virtual
• Memória virtual por paginação
Maxwell Anderson
2
Conceitos básicos
• Os esquemas vistos utilizando as técnicas de gerenciamento
de memória são ineficientes.
• O tamanho de um programa estava limitado à quantidade de
memória disponível.
• Os programadores eram obrigados a lidar com programas
muito maiores que a memória disponível.
• A solução era utilizar a técnica de overlay, que consistia em
dividir o programa em módulos.
Maxwell Anderson
3
Conceitos básicos
Memória Principal
2 KB
Sistema
Operacional
Programa
3 KB
Módulo principal
Módulo principal
3 KB
4 KB
Área de overlay
Módulo
cadastramento
Módulo
impressão
2 KB
4 KB
1 KB
Área livre
Maxwell Anderson
4
Conceitos básicos
• O overlay 0 seria o primeiro a ser executado;
• Quando esse overlay terminasse, ele chamaria outro
overlay, que seria carregado;
• Os overlays eram mantidos em disco e carregados (ou
removidos) dinamicamente da memória pelo S.O., à medida
que se tornavam necessários.
• A troca de overlays eram feitas pelo S.O., mas a divisão em
módulos era feita pelo programador.
Maxwell Anderson
5
Conceitos básicos
• Memória Virtual é uma técnica sofisticada e poderosa de
gerenciamento de memória, onde as memórias principal e
secundária são combinadas.
• O usuário tem a falsa impressão de existir uma memória
muito maior que a capacidade real da memória principal.
• O S.O. mantém as partes ativas na memória e o restante no
disco.
Exemplo: um programa de 16MB pode ser
executado em uma máquina com apenas 4MB
por meio de uma escolha sobre qual 4MB será
mantido ativo na memória.
Maxwell Anderson
6
Conceitos básicos
• Possibilita a implementação do processamento multitarefa.
• Permite um número maior de processos compartilhando a
memória principal, já que apenas parte de cada processo
será residente.
• Consequentemente, isto leva a uma utilização mais eficiente
do processador.
• Minimiza o problema de fragmentação.
Maxwell Anderson
7
Conceitos básicos
• Esta técnica foi criada em 1960, no sistema Atlas,
desenvolvido na Universidade de Manchester.
• Depois, a IBM incorporou na família System/370 em 1972.
• Hoje esta técnica é implementada na maioria dos Sistemas
Operacionais, exceto em alguns SOs de
supercomputadores.
Maxwell Anderson
8
Paginação
• A maioria dos sistemas operacionais com memória virtual
utilizam uma técnica chamada paginação.
• Ilustrando o espaço de endereçamento virtual:
MOV REG, $1000
• Estes endereços são gerados pelos programas e são
chamados endereços virtuais.
• O conjunto de endereços virtuais constituem o espaço de
endereçamento virtual.
Maxwell Anderson
9
Espaço de endereçamento virtual
• O conceito de memória virtual se aproxima muito da idéia de
um vetor, das linguagens de programação.
• O compilador se encarrega de gerar instruções que
implementam o mecanismo de referência a um elemento do
vetor. O programador não precisa se preocupar com isto.
• Um programa no ambiente de memória virtual não faz
referência a endereços físicos de memória (endereços reais)
mas apenas a endereços virtuais.
Maxwell Anderson
10
Memória virtual por paginação
• A memória virtual por paginação é a técnica de gerência de
memória onde o espaço de endereçamento virtual e o
espaço de endereçamento real são divididos em blocos de
mesmo tamanho chamado páginas.
Maxwell Anderson
11
Memória virtual por paginação
• O processador apenas executa instruções e referencia
dados residentes no espaço de endereçamento real.
• Existe um mecanismo chamado mapeamento que permite
traduzir um endereço localizado no espaço virtual para um
associado no espaço real.
Maxwell Anderson
12
Memória virtual por paginação
60K-64K
Espaço de endereçamento virtual
56K-60K
52K-56K
Página virtual
48K-52K
Esta relação é dada
pela tabela de
páginas
44K-48K
40K-44K
36K-40K
32K-36K
Espaço de endereçamento físico
28K-32K
28K-32K
24K-28K
24K-28K
20K-24K
20K-24K
16K-20K
16K-20K
12K-16K
12K-16K
8K-12K
8K-12K
4K-8K
4K-8K
0K-4K
0K-4K
Maxwell Anderson
Moldura de página ou frame
13
Memória virtual por paginação
Espaço de endereçamento virtual
60K-64K
X
56K-60K
X
52K-56K
X
48K-52K
X
44K-48K
7
40K-44K
X
36K-40K
5
32K-36K
X
28K-32K
X
28K-32K
24K-28K
X
24K-28K
20K-24K
3
20K-24K
16K-20K
4
16K-20K
12K-16K
0
12K-16K
8K-12K
6
8K-12K
4K-8K
1
4K-8K
0K-4K
2
0K-4K
Página virtual
Esta relação é dada
pela tabela de
páginas
Espaço de endereçamento físico
Maxwell Anderson
Moldura de página ou frame
14
Memória virtual por paginação
A CPU envia endereços
virtuais à MMU
MMU
Unidade de
Gerenciamento da
Memória
Barramento
A MMU envia endereços
físicos à memória
Maxwell Anderson
15
Algoritmos de substituição de página
• Ótimo
• FIFO (First In, First Out)
• LRU
Maxwell Anderson
16
Algoritmos de substituição de página
• Ótimo
– Seleciona para substituição uma página que não será mais
referenciada no futuro ou aquela que levará o maior intervalo de
tempo para ser novamente utilizada;
– Este algoritmo garantia as menores taxas de paginação para os
processos;
– Na prática é impossível de ser implementada, pois o sistema
operacional não tem como conhecer o comportamento futuro
das aplicações.
Maxwell Anderson
17
Algoritmos de substituição de página
• FIFO (First In, First Out)
– A página que primeiro foi utilizada será a primeira a ser
escolhida (a mais antiga);
– Pode ser implementado associando-se a cada página o
momento em que foi carregada para a memória (tempo) ou
implementando-se uma estrutura de fila onde as páginas mais
antigas estão no início e as mais novas no final;
– No caso de uma página ser constantemente referenciada
(páginas de dados, p.e.) o fator tempo torna-se irrelevante e o
sistema tem que referenciar a página diversas vezes ao longo do
processamento.
Maxwell Anderson
18
Algoritmos de substituição de página
• LRU (Least-Frequently-Used)
– Seleciona a página na memória principal que está mais tempo
sem ser referenciada;
– Uma página que não foi recentemente utilizada provavelmente
não será referenciada novamente em um futuro próximo;
– Seria necessário que cada página tivesse a informação do
momento do último acesso, que deve ser atualizado a cada
referência a um frame;
– Então, o sistema fará uma busca por um frame que esteja a
mais tempo sem ser referenciado.
Maxwell Anderson
19
Referência Bibliográfica
[1] Machado, F. B.; Maia, L.P. Arquitetura de Sistemas
Operacionais. 3ª edição. Rio de Janeiro: LTC, 2002.
[2] Tanenbaum, A. Sistemas Operacionais Modernos.
Maxwell Anderson
20
Download

Sistemas Operacionais