infra-estrutura de software gerenciamento de memória
TRANSCRIPT
![Page 1: Infra-Estrutura de Software Gerenciamento de Memória](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/1.jpg)
Infra-Estrutura de SoftwareInfra-Estrutura de Software
Gerenciamento de MemóriaGerenciamento de Memória
![Page 2: Infra-Estrutura de Software Gerenciamento de Memória](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/23.jpg)
SegmentaçãoSegmentaçãoSegmentos DinâmicosSegmentos Dinâmicos
![Page 24: Infra-Estrutura de Software Gerenciamento de Memória](https://reader035.vdocuments.site/reader035/viewer/2022062522/570638451a28abb8238f29cb/html5/thumbnails/24.jpg)
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