Post on 17-Apr-2015
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 1
Arquitetura de Sistemas Arquitetura de Sistemas OperacionaisOperacionais
Francis Berenger MachadoFrancis Berenger MachadoLuiz Paulo MaiaLuiz Paulo Maia
Capítulo 10Capítulo 10Gerência de Memória VirtualGerência de Memória Virtual
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 2
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 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
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 3
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
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 4
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
• Reduzir a fragmentação• Permitir estruturas e dados maiores
que a memória
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 5
Espaço de Endereçamento Virtual
En dereço Físico
50 0
50 1
50 2
50 3
50 4
.
.
.
59 9
V ET [1]
V ET [2]
V ET [3]
V ET [4]
V ET [5]
.
.
.
.
.
.
V ET [10 0]
• Vetor de 100 posições
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 6Arq
uite
tura
de
Sis
tem
as O
pera
cion
ais
– M
acha
do/M
aia
Espaço de Endereçamento Virtual
• Espaço de endereçamento virtual e real
Esp
aço
de
en
der
eça
me
nto
vir
tua
l
Esp
aço
de
end
ereç
am
ento
rea
l
En dereço vir tu a l 0
En dereço vir tu a l 1
En dereço vir tu a l 2
En dereço vir tu a l 3
En dereço vir tu a l 4
En dereço vir tu a l 5
.
.
.
En dereço vir tu a l V
En dereço rea l 0
En dereço rea l 1
En dereço rea l 2
En dereço rea l 3
.
.
.
En dereço rea l R
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 7Arq
uite
tura
de
Sis
tem
as O
pera
cion
ais
– M
acha
do/M
aia
Espaço de Endereçamento Virtual
• Espaço de endereçamento virtualM em ória V irtua l
.
.
.
.
M em ória Pr in cipa l
M em ór ia Secu nd á r ia
.
.
.
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 8
Mapeamento
M em ória V irtua l
M em ór ia Pr in cip a l
M ap eam en to
.
.
.
.
.
.
• Mapeamento
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 9
Mapeamento
• Tabela de mapeamento
Processo A
Esp aço d een dereça m en to
virtua l d e A
En dereço vir tu a l 1
.
.
.
Tab ela dem a pea m en to
d e A
Esp aço d een dereça m en to
virtua l d e B
En dereço vir tu a l 1
.
.
.
Tab ela dem a pea m en to
d e B
Processo B
M em ó ria Pr in cip a l
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 10
Mapeamento
• Espaço virtual x tamanho do bloco
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 11
Memória Virtual por Paginação
• Tabela de páginas
M em ória V ir tua l
.
.
.
.
Pág in a virtua l 0
Pág in a virtua l 1
Pág in a virtua l 2
Pág in a virtua l V
Tab ela dep ág in as
ETP
M em ór ia Pr in cipa l
M em ór ia Secu nd á r ia
.
.
.
Pág in a rea l 0
Pág in a rea l 1
Pág in a rea l R
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 12
Memória Virtual por Paginação
• Tradução do endereço virtual
Págin a virtua l
D eslocam en to
En dereço virtu a l
D esloc.N PV
En d. do fra m e
ETP
Tab ela de pá g ina s
En d. do fra m e D esloc.
Fram e
D eslocam en to
En dereço físico
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 13
Memória Virtual por Paginação
• Mecanismo de tradução
En dereço virtu a l
Tab ela de pá g ina s
Bit d e va l id ad e
0
M em ória Pr in cipa l
M em ór ia secun d á ria
Page fau lt
Tab ela de pá g ina s
Bit d e va l id ad e
1
M em ória Pr in cipa l
M em ór ia secun d á ria
Pa ge in
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 14
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
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 15
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
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 16
Políticas de Substituição de Páginas
• Substituição de páginas
M em ória Pr in cip a l
A rq u ivo dep ag in açã o
Pag e o ut
Pag e in
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 17
Working Set
• Conceito de localidade
Página 0
Página 1
Página 2
Página 3
Página 4
In icia lizaçã o
W H ILE () D O BEG IN
EN D ;
Im pr im e resu lta do s
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 18
Working Set
• Modelo de working set
tem po
P2 P3 P2 P8
t1 t2
J an ela d o w o rk ing set ( t)
W (t , t)2
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 19
Working Set
• Tamanho do working set
tem po
P2 P3 P4 P5 P2 P5 P5 P5 P5 P6
t1 t2 t3
ta tb
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 20
Working Set
• Taxa de page fault x limite de páginas reais
Lim ite d e p ág in as rea is
Taxa
de
pa
ge
fa
ult
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 21
Algoritmos de Substituição de Páginas
• FIFO
Pág in am a is an tig a
Pág in am a is recente
sa íd a en trad a
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 22
Algoritmos de Substituição de Páginas
• Ótimo• Aleatório• FIFO• LFU• LRU• NRU• FIFO com buffer de páginas• FIFO circular
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 23
Algoritmos de Substituição de Páginas
• Bits de referência e modificação
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 24
Algoritmos de Substituição de Páginas
• FIFO com Buffer de Páginas
in ício fi m
in íciofi m
(a ) (c)(b )
Lista d e p ág in as l ivres
Lista d e p ág in as a lo cad as
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 25
Algoritmos de Substituição de Páginas
• FIFO Circular (Clock)
P1
P2
P3
P4P5
Pn
BR= 1
BR= 1
BR= 0
p ágin am a is
an tiga
(a )
P1
P2
P3
P4P5
Pn
BR= 0
BR= 0
BR= 0
p ágin aselecio n ad a
(b )
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 26
Tamanho de Página
• Fragmentação interna
Págin a 0
Pág in a 1
Pág in a 2
Pág in a 3
Pág in a 4
PRO G RA M Frag ;V A R
PRO C ED U RE A ;
EN D ;
BEG IN
EN D.
Frag m en tação
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 27
Paginação em Múltiplos Níveis
• Paginação em um nível
0
1
2
(2 - 1)20
Tab ela de pá g ina s
D esloc.N PV
12 b its20 b its
En dereço V irtua l
32 b its
4 M b
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 28
Paginação em Múltiplos Níveis
• Endereço virtual em dois níveis
Tab ela d iretó r io
D esloc.12 b its
N PV 110 b its
En dereço V irtua l
N PV 210 b its
Tab ela de pá g ina s
fram e
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 29
Paginação em Múltiplos Níveis
• Paginação em dois níveis
M em ória Pr in cip a l
10 23
Tab ela d ire tó r io
0
1
2
3
0
1
2
10 23
Tab ela de pá g ina s 1
3
0
1
2
10 23
Tab ela de pá g ina s 0
3
0
1
2
10 23
Tab ela de pá g ina s 1 023
3
fram e 10 0
fram e 20 00
fram e 40 00
fram e 30 0 10 0
40 00
20 00
30 0
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 30
Translation Lookaside Buffer
M em ória p rincip a l
D esloc.N PV
En dereço V irtua l
Tran sla tion Lo okasid e Buff er (TLB)
BV Tag En d. F ísico
0
1
0
1
0
1
Tab ela de m ap eam en to
BV En d. F ísico
1
1
1
0
1
0
1
M em ória secun dá ria
• Translation Lookaside Buffer (TLB)
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 31
Translation Lookaside Buffer
• Campos da TLB
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 32
Proteção de Memória
• Proteção para páginas
L GEn dereço da
p ág in a / seg m en to
Bits d e p ro teçã o
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 33
Proteção de Memória
• Mecanismo de proteção
D escrição
Sem a cessoA cesso d e le itu ra
A cesso p a ra le itura / g ravação
LG
001011
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 34
Compartilhamento de Memória
Processo A
Esp aço deen dereça m en to
virtua l d e A
En dereço vir tu a l 1
.
.
.
Tab ela dem a pea m en to
d e A
Esp aço deen dereça m en to
virtua l d e B
En dereço vir tu a l 1
.
.
.
Tab ela dem a pea m en to
d e B
Processo B
M em ó ria Pr in cip a l
Pág in a
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 35
Memória Virtual por Segmentação
• Segmentação
PRO G RA M Segm ento ;
V A R A : A RRA Y... C : . ..
PRO C ED U RE X;
EN D ;
FU N C TIO N Y;
EN D ;
BEG IN
EN D.
Proced im ento X
Program a Pr in cipa l
Fu nçã o Y
A rray A
Va riáve l C
.
.
.
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 36
Memória Virtual por Segmentação
• Tradução do endereço virtual
D eslocam en to
En dereço virtu a l
D esloc.
En d. do seg m en to
ETS
Tab ela de seg m en tos
D esloc.
Segm ento n am em ória pr in cipa l
D eslocam en to
En dereço físico
Segm ento vir tua l
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 37
Memória Virtual por Segmentação
• Campos da ETS
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 38
Memória Virtual por Segmentação
• Paginação x segmentação
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 39
Memória Virtual por Segmentação com Paginação
En dereço do fram e D eslocam en to
D eslocam en toN um .
seg m en toN um .
p ágin a
En dereço vir tu a l
Segm ento virtua l
En d. da ta bela d e p ág in as
ETS
Tab ela de seg m en tos
En dereço do fram e
ETP
Tab ela de pá g ina s
En dereço físico
• Segmentaçãocom paginação
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 40
Swapping em Memória Virtual
M em ória Pr in cipa l
Processo A
Processo B
Processo E
Processo D
Processo CProcesso F
M em ór ia Pr in cipa l
Processo A
Processo F
Processo B
Processo D
Processo CA rq u ivo desw a pp in g
Processo B
Sw ap ou t
Sw ap in
• Swapping emmemória virtual
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 41
Thrashing
• Excessiva transferência de páginas e/ou segmentos entre a memória principal e memória secundária
• Ocorre em dois níveis:– no próprio processo
– no sistema
Arq
uit
etu
ra d
e S
iste
mas
Opera
cionais
– M
ach
ado/M
aia
Cap. 10 – Gerência de Memória Virtual 42
Thrashing
• Se existirem mais processos para serem executados que memória real disponível, a única solução é a expansão da memória principal.
• Este problema não ocorre apenas em sistemas que implementam memória virtual, mas também em sistemas com outros mecanismos de gerência de memória