Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 10 – Gerência de Memória Virtual1...

Post on 17-Apr-2015

116 views 2 download

Transcript of Arquitetura de Sistemas Operacionais – Machado/Maia Cap. 10 – Gerência de Memória Virtual1...

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