Arquitetura de Sistemas Arquitetura de Sistemas
Operacionais Operacionais
Francis Berenger Machado Francis Berenger Machado Francis Berenger Machado Francis Berenger Machado
Luiz Paulo Maia Luiz Paulo Maia
Capítulo 10 Capítulo 10
Gerência de Memória Virtual
Gerência de Memória Virtual
Sumário
• Introdução
• Espaço de Endereçamento Virtual
• Mapeamento
• Memória Virtual por Paginação
– Política de Busca de Páginas – Política de Busca de Páginas
– Política de Alocação de Páginas
– Política de Substituição de Páginas – Working Set
– Algoritmo de Substituição de Páginas – Tamanho de Página
– Paginação em Múltiplos Níveis
Sumário
• Memória Virtual por Paginação (cont.)
– Translation Lookaside Buffer – Proteção de Memória
– Compartilhamento de Memória
• Memória Virtual por Segmentação
• Memória Virtual por Segmentação com Paginação
• Swapping em Memória Virtual
• Thrashing
Introdução
• Memória virtual é uma técnica que combina memória principal e
secundária
• Maximizar o número de processos na memória
memória
• Reduzir a fragmentação
• Permitir estruturas e dados maiores
que a memória
Espaço de Endereçamento Virtual
Endereço Físico 500
501 502
VET [1]
VET [2]
VET [3]
• Vetor de 100 posições
502 503 504
. . . 599
VET [3]
VET [4]
VET [5]
. . . .
. .
VET [100]
Espaço de Endereçamento Virtual
• Espaço de endereçamento virtual e real
ento virtual reçamento real
Endereço virtual 0 Endereço virtual 1 Endereço virtual 2 Endereço virtual 3
Endereço real 0 Endereço real 1 Endereço real 2 Endereço real 3
Espaço de endereçame Espaço de endereEndereço virtual 3 Endereço virtual 4
Endereço virtual 5
. . .
Endereço virtual V
Endereço real 3
. . .
Endereço real R
Espaço de Endereçamento Virtual
• Espaço de endereçamento virtual
Memória Virtual Memória Principal
. . .
. . . .
Memória Secundária
.
Mapeamento
Memória Virtual
Memória Principal
. .
• Mapeamento
Mapeamento
. .
. .
.
Mapeamento
• Tabela de
mapeamento
Espaço de endereçamento
virtual de A
Endereço virtual 1
. . .
Tabela de mapeamento
de A
Memória Principal
Processo A
Espaço de endereçamento
virtual de B
Endereço virtual 1
. . .
Tabela de mapeamento
de B
Mapeamento
• Espaço virtual x tamanho do bloco
Memória Virtual por Paginação
• Tabela de páginas
Memória Virtual
Página virtual 0
Página virtual 1
Tabela de
Memória Principal
. .
Página real 0
Página real 1
. . . .
Página virtual 2
Página virtual V
Tabela de páginas
ETP
Memória Secundária
. .
Página real R
Memória Virtual por Paginação
• Tradução do
endereço virtual
Página virtual Deslocamento
Endereço virtual
Desloc.
NPV
Tabela de páginas
End. do frame ETP
End. do frame Desloc.
Frame
Deslocamento Endereço físico
Memória Virtual por Paginação
• Mecanismo de tradução
Endereço virtual
Tabela de páginas
Bit de validade 0
Memória Principal
Page fault
Page in
Memória secundária
Tabela de páginas
Bit de validade 1
Memória Principal
Memória secundária
Política de Busca de Páginas
• Determina quando uma página deve ser carregada para a memória
• Paginação por demanda
• Paginação antecipada
• Paginação antecipada
Política de Alocação de Páginas
• Determina quantos frames um processo pode ter na memória
• Alocação fixa
• Alocação variável
Políticas de Substituição de Páginas
• Substituição de páginas
Memória Principal
Arquivo de paginação
Page o Page out
Page in
Working Set
• Conceito de localidade
Página 0
Página 1
Inicialização
WHILE () DO BEGIN
Página 2
Página 3
Página 4
BEGIN
END;
Imprime resultados
Working Set
• Modelo de working set
Janela do working set ( t)
tempo
P2 P3 P2 P8
t 1 t 2
W(t , t)
2Working Set
• Tamanho do working set
tempo
P2 P3 P4 P5 P2 P5 P5 P5 P5 P6
t t t tempo
t 1 t 2 t 3
t a t b
Working Set
• Taxa de page fault x limite de páginas reais
g e f a u lt
Limite de páginas reais
Ta x a d e p a g e
Algoritmos de Substituição de Páginas
• FIFO
saída entrada
Página mais antiga
Página mais recente
Algoritmos de Substituição de Páginas
• Ótimo
• Aleatório
• FIFO
• LFU
• LRU
• LRU
• NRU
• FIFO com buffer de páginas
• FIFO circular
Algoritmos de Substituição de Páginas
• Bits de referência e modificação
Algoritmos de Substituição de Páginas
• FIFO com Buffer de Páginas
início Lista de páginas livres fim
início fim
(a) (c) (b)
Lista de páginas alocadas
Algoritmos de Substituição de Páginas
• FIFO Circular (Clock)
P1
Pn P2
BR= 1
BR= 1
página mais
P1
Pn P2
BR= 0
BR= 0
P3
P5 P4
BR= 0 mais
antiga
(a)
P3
P5 P4
BR= 0 página
selecionada
(b)
Tamanho de Página
• Fragmentação interna
Página 0
Página 1
PROGRAM Frag;
VAR
PROCEDURE A;
Página 2
Página 3
Página 4
END;
BEGIN
END.
Fragmentação
Paginação em Múltiplos Níveis
• Paginação em um nível
0 1
Tabela de páginas
Endereço Virtual
2
(2 -1)20 Desloc.
NPV
12 bits 20 bits
Endereço Virtual
32 bits
4 Mb
Paginação em Múltiplos Níveis
• Endereço virtual em dois níveis
Desloc.
12 bits NPV 1
10 bits
Endereço Virtual NPV 2 10 bits
Tabela diretório
Tabela de páginas
Paginação em Múltiplos Níveis
• Paginação
em dois níveis
Tabela diretório 0
1
0 1 2
Tabela de páginas 1 0
1 2
1023
Tabela de páginas 0
3
frame 100 frame 2000
frame 4000
frame 300 100
300
Memória Principal 1023
2 3
1023 3
0 1 2
Tabela de páginas 1023
3
4000 2000
Translation Lookaside Buffer
Memória principal Desloc.
NPV Endereço Virtual
Translation Lookaside Buffer (TLB)
BV Tag End. Físico
0 1 0 1 0 1
• Translation Lookaside Buffer (TLB)
Tabela de mapeamento BV End. Físico
1 1 1
0
1 0 1
Translation Lookaside Buffer
• Campos da TLB
Proteção de Memória
• Proteção para páginas
L G Endereço da
L G Endereço da
página/ segmento
Bits de proteção
Proteção de Memória
• Mecanismo de proteção
Descrição LG
Sem acesso Acesso de leitura
Acesso para leitura/ gravação 00
10
11
Compartilhamento de Memória
Espaço de endereçamento
virtual de A
Endereço virtual 1
. . .
Tabela de mapeamento
de A
Memória Principal
Processo A
Espaço de endereçamento
virtual de B
Endereço virtual 1
. . .
Tabela de mapeamento
de B
Página
Memória Virtual por Segmentação
• Segmentação
PROGRAM Segmento;
VAR A: ARRAY...
C: ...
PROCEDURE X;
Procedimento X
Programa Principal Função Y END;
FUNCTION Y;
END;
BEGIN END.
Array A
Variável C
.
.
.
Memória Virtual por Segmentação
• Tradução do
endereço virtual
Deslocamento Endereço virtualDesloc.
Tabela de segmentos Segmento virtual
End. do segmento ETS
Desloc.
Segmento na memória principal
Deslocamento Endereço físico
Memória Virtual por Segmentação
• Campos da ETS
Memória Virtual por Segmentação
• Paginação x segmentação
Memória Virtual por Segmentação com Paginação
Deslocamento Num.
segmento
Num.
página
Endereço virtual Segmento virtual
• Segmentação com paginação
End. da tabela de páginas ETS
Tabela de segmentos
Endereço do frame ETP
Tabela de páginas
Swapping em Memória Virtual
Memória Principal
Processo A
Processo B
Processo D Processo C
Processo F
Swap o
• Swapping em memória virtual
Processo E
Processo D
Memória Principal
Processo A
Processo F
Processo B Processo C
Arquivo de swapping Processo B ap o
ut
Swap in