Gerenciamento de Memória
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Hierarquia de Memória
chip
CPU
Reg.
Registradores
Velocidade
Cache
cache (L1)
Principal
Custo e
tamanho
cache (L2)
Cache de Disco
memória principal
memória secundária
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Disco Magnético
Fita
CD-ROM
Localidade

Temporal
• Num futuro próximo, o programa irá
referenciar os programas e dados
referenciados recentemente

Espacial
• Num futuro próximo, o programa irá
referenciar os programas e objetos de dados
que tenham endereços próximos das últimas
referências.
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Memória Virtual

Disco
• Muito mais barato que memória

1961: Overlay automático Swap File
• Universidade de Manchester
• Sistema operacional
• Memória virtual
disco
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
memória
principal
Memória Virtual
2n
CPU
End.
n
Dados
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Espaço de endereçamento
Memória disponível
Particionamento da Memória
Pedaços grandes com tamanho fixo
 Pedaços com tamanho variável

S.O.
P5
P1
P1
P2
P3
P4
Fragmentação
Interna
Externa
P4
P2
P3
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Paginação

Pedaços pequenos de tamanho iguais fixos
Disco
Pág. Livres
13,
15,
15,
15
16
1616
Proc. A
pág.0
pág.1
pág.2
pág.3
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
13
15
16
15
Tabela Conversão
Pág. p/ Proc. A
Memória
Principal
Pág.V.0
Ocupada
Pág.V.1
Pág.V.3
Pág.V.2
Ocupada
Ocupada
Ocupada
Ocupada
Ocupada
…
13
14
15
16
17
18
19
20
21
Paginação
Endereço Virtual (Lógico)
endereço da página
deslocamento
memória
principal
entradas
nr. página real
desloc.
Endereço Real (Físico)
tabela de páginas
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Paginação:
Armazenando as tabelas
Uma tabela de páginas por processo
 Problema: Armazenar as tabelas em
memória real
 Exemplo: VAX

• 2 Gbyte / processo
• 512 Byte / página
=> 4 MegaEntradas por
tabela por processo
=> Muito espaço para tabelas
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Paginação:
Armazenando as tabelas

Solução 1: Guardar parte das tabelas em
memória virtual
• A tabela da página corrente tem que estar na
memória real

DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Solução 2: Usar uma estrutura hierárquica
de paginação
Paginação:
Diretório de Tabelas de Páginas
Endereço Virtual (Lógico)
diretório
página
tab.0
tab.1
desloc.
memória
tab.1
p.real
p.real
Dir.
p.real
p.real
p.real
tab.0
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Usado no
Pentium
p.real
Endereço Físico e Virtual
Endereço virtual
i1
i2
i3
desloc
Endereço físico
num. pag. física
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
desloc.
Tabela de Página Invertida
Vp
Dp
Vp
Rp
link
hash function
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Usado no
IBM AS/400
e PowerPC
Rp
Dp
Acelerando a tradução...


Problema: Um acesso à mem.virtual => 2 acessos à
mem. real (1 p/ tabela + 1 p/ dado desejado)
Solução: Translation Lookaside Buffer
• Funciona como uma cache para tabelas de página
• Requer um acesso à mem. física e um à cache do TLB
• Aumento de performance (Princípio da Localidade)
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
VpA
DpA
VpE
RpE
VpA
VpB
RpA
RpB
VpT
RpT
RpA
DpA
Gerenciamento de Memória
Vp
Dp
hitTLB
TLB
Rp
missTLB
&
misstab.pag.
missTLB
&
hittab.pag.
tab.pág.
Disco
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Dp
cache
misscache
&
missmem..
hitcache
Valor
Rp
misscache
&
hitmem.
memória
principal
Unidade de Gerenciamento de Memória
dados
CPU
memória
Virtual
UGM
Testes de proteção
Testes de memória
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Real
Paginação:
O que fazer quando há falta de página?
Falta de Página
 Falta da Tabela de Página

DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
1) Chamada do Sistema Operacional => chaveamento
de contexto (executa outro processo enquanto
carrega a página na memória)
2) Escolha da página a ser retirada da memória (se não
houver espaço livre)
Políticas de substituição

Randômica
• baixo desempenho

FIFO
• ignora localidade temporal

LRU (least recently used)
• considera quando a página foi referenciada
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Segmentação

Controlado pelo usuário e S.O.
• Facilita compartilhamento e proteção de dados
• Permite alterar sistemas com recompilação
parcial, sem relinkar
Organização de programas e dados
 Permite controle de acesso mais fino a
dados e instruções do que paginação
 Tamanho variável e dinâmico
 Tradução de endereço virtual p/ físico
semelhante à da paginação

DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Segmentação:
Exemplo do Pentium
Cada segmento tem informações de:
1) Nível de privilégio de acesso (de 0 a 3)
• UGM => 0, Sistema Operacional => 1
• A execução de algumas instruções está limitada
a alguns níveis de privilégio:
– Uso de registradores de Ger. Memória => Nível 0
– Instruções de I/O => Nível 1 (usado no Windows NT)
2) Atributo de Acesso
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
• Segmento de Dados => read/write ou read-only
• Segmento de Instruções => read/execute ou
read-only
Segmentação
num. segmento
Desloc.
memória principal
tabela de segmentos
entradas
bp tam. end.segm
+
end. físico
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Substituição de Segmentos

Onde o segmento deve ser alocado?
• best-fit
• worst fit
• first fit
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Página

X
Tamanho Fixo
• Transparente ao usuário
• Gerenciamento eficiente
(pequena fragmentação interna)
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
Segmento

Tamanho Variável
• Controlado pelo usuário
• Facilidade de proteção
• Fragmentação Externa
Segmentação Paginada
Vp
segmento
desl.
tabela de segmento
+
End. Seg.
tabela de página
entradas
memória
principal
+
•Segm. => modularização do programa
•Pagin. => melhor alocação da memória
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
dado
Segmentação Paginada
Falta do Segmento
 Falta da Tabela de
Segmento
 Falta de Página
 Falta da Tabela de Página
 Falta de Proteção
 Falta de Limite

DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
chamada do
sistema
operacional
chaveamento
de contexto
Segmentação e Paginação
Segmentação
• Alta performance
• Simplicidade
Paginação
DEPARTAMENTO
DE INFORMÁTICA
UFPE
GRECO
• Proteção menos
acessível ao usuário
• Memória virtual
• Endereços lógicos
• Proteção de dados e
código
• Tab. de tradução
sempre
na mem. principal
• Segm. => modularização
• Pag. => alocação da mem
Download

orgcomp9-somemoria - Centro de Informática da UFPE