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