rquitetura de Sistemas Operacionais – Machado/Maia Cap. 10 – Gerência de Memória Virtual 1 Arquitetura de Sistemas Arquitetura de Sistemas Operacionais Operacionais 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
42
Embed
Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 10 – Gerência de Memória Virtual1 Arquitetura de Sistemas Operacionais Francis Berenger Machado.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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