infra-estrutura de software gerenciamento de memória

24
Infra-Estrutura de Software Infra-Estrutura de Software Gerenciamento de Gerenciamento de Memória Memória

Upload: kaique-grande

Post on 07-Apr-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Infra-Estrutura de Software Gerenciamento de Memória

Infra-Estrutura de SoftwareInfra-Estrutura de Software

Gerenciamento de MemóriaGerenciamento de Memória

Page 2: Infra-Estrutura de Software Gerenciamento de Memória

O que ocorre para que um O que ocorre para que um programa seja executado?programa seja executado? Compilação Carregamento na memória Execução

Page 3: Infra-Estrutura de Software Gerenciamento de Memória

Execução de um programaExecução de um programa

Ambiente monoprocessoAmbiente monoprocesso Programa executa numa posição conhecida de

memória

Page 4: Infra-Estrutura de Software Gerenciamento de Memória

Execução de um programaExecução de um programa

Ambiente monoprocessoAmbiente monoprocesso Programa executa numa posição conhecida de

memória Compilador conhece o endereço inicial onde o

programa será executado (geração de código absoluto) Requer recompilação se endereço de execução mudar

AJMP testeCALL func

...func ADD r1, r2, r3

RET...teste SUB r1, r2, r3

0800 AJMP 09500803 CALL 0900...0900 ADD r1, r2, r30902 RET ...0950 SUB r1, r2, r3

Page 5: Infra-Estrutura de Software Gerenciamento de Memória

Execução de um programaExecução de um programa

Ambiente multiprocesso => Ambiente multiprocesso => RelocaçãoRelocação Programa executa numa posição desconhecida em

tempo de compilação Compilador gera código relocável, ou Há suporte de hardware para relocação (registradores

de base)

Endereço virtual

Endereço inicial

Endereço físico

+

Page 6: Infra-Estrutura de Software Gerenciamento de Memória

MultiprocessamentoMultiprocessamento

Partições fixas e variáveisPartições fixas e variáveis

P1P2P3

P4

P1

P2

P3

P4

P1

FragmentaçãoFragmentaçãoInternaInterna ExternaExterna

Partições FixasPartições Fixas Partições VariáveisPartições Variáveis

Necessita compactaçãoNecessita compactação(com relocação)(com relocação)

Page 7: Infra-Estrutura de Software Gerenciamento de Memória

Multiproc. com partições variáveisMultiproc. com partições variáveis Alocação de espaço extraAlocação de espaço extra

a) Alocando espaço para dadosb) Alocando espaço para pilha e dados

Page 8: Infra-Estrutura de Software Gerenciamento de Memória

Memória VirtualMemória Virtual

Como o programador vê o sistema• CPU e memória individuais• Memória grande e rápida

Como funciona realmente• CPU e memória compartilhada• Hierarquia de memória para compensar o

preço

Page 9: Infra-Estrutura de Software Gerenciamento de Memória

Memória VirtualMemória Virtual

CPU End.

Dados

n

Memória disponível

Espaço de endereçamento da CPU

2n

Page 10: Infra-Estrutura de Software Gerenciamento de Memória

Hierarquia de MemóriaHierarquia de Memória

cache (L1)

CPURegistradores

memória principal

memória secundária

Quantidade disponível

chip

cache (L2)

Velocidadee custo/bit

Reg.

Cache

Principal

Cache de Disco

Disco Magnético

Fita CD-ROM

Page 11: Infra-Estrutura de Software Gerenciamento de Memória

Princípio da LocalidadePrincípio da Localidade

Há uma grande probabilidade do programa referenciar novamente as instruções e dados recentemente referenciados ou que tenham endereços próximos das últimas referências.

Page 12: Infra-Estrutura de Software Gerenciamento de Memória

Memória VirtualMemória VirtualUnidade de Gerenciamento de MemóriaUnidade de Gerenciamento de Memória

Page 13: Infra-Estrutura de Software Gerenciamento de Memória

achamem.

Hierarquia de MemóriaHierarquia de Memória

Rp Dp

memóriaprincipal

ValorValortab. páginas(Mem.Princ.)

Vp Dp

TLBachaTLB

faltaTLB &achatab.pag.

DiscoDisco

faltafaltaTLBTLB &&faltafaltatab.pag.tab.pag.

faltafaltamem..mem..

Rp

Page 14: Infra-Estrutura de Software Gerenciamento de Memória

Memória VirtualMemória Virtual

PaginaçãoPaginação

Páginas virtuais efísicas: Tradução com

tabela de páginas

Page 15: Infra-Estrutura de Software Gerenciamento de Memória

PaginaçãoPaginação

Exemplo deExemplo detraduçãotradução

MMU com tabela para 16 páginas de 4KB

Page 16: Infra-Estrutura de Software Gerenciamento de Memória

PaginaçãoPaginação

Exemplo de traduçãoExemplo de tradução

Ocupada

Ocupada

Ocupada

…131415161718192021

13, 15, 16

Tabela ConversãoPág. p/ Proc. A

DiscoDisco

Proc. AProc. Apág.0pág.1pág.2pág.3

13151615

Pág.V.0

Pág.V.1Pág.V.2Pág.V.3

Pág. Livres

15, 16 16 15

MemóriaMemóriaPrincipalPrincipal

OcupadaOcupada

Ocupada

Page 17: Infra-Estrutura de Software Gerenciamento de Memória

PaginaçãoPaginaçãoO que fazer quando há falta de página?O que fazer quando há falta de página?

Escolha da página a ser retirada da memória (se não houver espaço livre)

Página a ser retirada deve ser salva no disco se tiver sido modificada

Page 18: Infra-Estrutura de Software Gerenciamento de Memória

Tamanho da páginaTamanho da página

Páginas pequenas Vantagens

• Efeito menor da fragmentação interna• Se adapta melhor a diversas estruturas de

dados e blocos de código Menos memória desperdiçadaMenos memória desperdiçada

Desvantagem• Tabelas de páginas maiores

Page 19: Infra-Estrutura de Software Gerenciamento de Memória

Tamanho da páginaTamanho da página

Overhead da memória devido à fragmentação interna e tabelas de página

Onde• s = tam. médio de um processo• p = tam. da página• e = tam. da entrada na tabela

2s e poverheadp

Espaço das tab. de páginas

fragmentação

interna

otimizado quando2p se

Page 20: Infra-Estrutura de Software Gerenciamento de Memória

Espaços separados para dados e Espaços separados para dados e instruçõesinstruções

a) Espaço único b) Espaços separados

Page 21: Infra-Estrutura de Software Gerenciamento de Memória

Páginas compartilhadasPáginas compartilhadas

Dois processos compartilhando o mesmo código e tabela de páginas

A

B

Page 22: Infra-Estrutura de Software Gerenciamento de Memória

SegmentaçãoSegmentação

Antes da segmentação:

Tabelas com alocação dinâmica

Tabelas podem “colidir”

Page 23: Infra-Estrutura de Software Gerenciamento de Memória

SegmentaçãoSegmentaçãoSegmentos DinâmicosSegmentos Dinâmicos

Page 24: Infra-Estrutura de Software Gerenciamento de Memória

Segmentação x PaginaçãoSegmentação x PaginaçãoQuestão Paginação Segmentação

Programador interage com a técnica? Não Sim

Espaços de end. lineares usados? 1 Vários

Espaço de end. pode ser maior que a memória física? Sim Sim

Tabelas podem mudar tamanho? Não Sim

Procedimentos e dados são distintos e protegidos separadamente? Não Sim

É fácil compartilhar procedimentos?Não Sim

Porque é usado? Para dispor de mais MP do que realmente temos

Programas e dados usam espaços de end. distintos. Facilita compartilhamento e proteção