Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência de Memória Virtual Cap 10 Gerência de Memória Virtual 1
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 Sumário Cap 10 Gerência de Memória Virtual 2
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 Sumário Cap 10 Gerência de Memória Virtual 3
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 Cap 10 Gerência de Memória Virtual 4
Espaço de Endereçamento Virtual Vetor de 100 posições Endereço Físico 500 501 502 503 504 599 VET [1] VET [2] VET [3] VET [4] VET [5] VET [100] Cap 10 Gerência de Memória Virtual 5
Espaço de Endereçamento Virtual Espaço de endereçamento virtual e real Espaço de endereçame ento virtual Endereço virtual 0 Endereço virtual 1 Endereço virtual 2 Endereço virtual 3 Endereço virtual 4 Endereço virtual 5 Endereço virtual V Espaço de endere reçamento real Endereço real 0 Endereço real 1 Endereço real 2 Endereço real 3 Endereço real R Cap 10 Gerência de Memória Virtual 6
Espaço de Endereçamento Virtual Espaço de endereçamento virtual Memória Virtual Memória Principal Memória Secundária Cap 10 Gerência de Memória Virtual 7
Mapeamento Mapeamento Memória Virtual Memória Principal Mapeamento Cap 10 Gerência de Memória Virtual 8
Tabela de mapeamento Espaço de endereçamento virtual de A Endereço virtual 1 Mapeamento Tabela de mapeamento de A Memória Principal Processo A Espaço de endereçamento virtual de B Endereço virtual 1 Tabela de mapeamento de B Processo B Cap 10 Gerência de Memória Virtual 9
Mapeamento Espaço virtual x tamanho do bloco Cap 10 Gerência de Memória Virtual 10
Memória Virtual por Paginação Tabela de páginas Memória Virtual Página virtual 0 Memória Principal Página real 0 Página virtual 1 Página virtual 2 Tabela de páginas Página real 1 ETP Página real R Memória Secundária Página virtual V Cap 10 Gerência de Memória Virtual 11
Memória Virtual por Paginação Tradução do endereço virtual Página virtual Deslocamento Endereço virtual NPV Desloc Tabela de páginas ETP End do frame End do frame Desloc Frame Deslocamento Endereço físico Cap 10 Gerência de Memória Virtual 12
Page fault Memória Virtual por Paginação Mecanismo de tradução Endereço virtual Tabela de páginas Memória Principal Bit de validade 0 Page in Memória secundária Tabela de páginas Memória Principal Bit de validade 1 Memória secundária Cap 10 Gerência de Memória Virtual 13
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 Cap 10 Gerência de Memória Virtual 14
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 Cap 10 Gerência de Memória Virtual 15
Políticas de Substituição Substituição de páginas de Páginas Memória Principal Arquivo de paginação out o Page Page in Cap 10 Gerência de Memória Virtual 16
Working Set Conceito de localidade Página 0 Inicialização Página 1 WHILE () DO BEGIN Página 2 Página 3 END; Página 4 Imprime resultados Cap 10 Gerência de Memória Virtual 17
Working Set Modelo de working set Janela do working set ( t) P2 P3 P2 P8 t 1 t 2 W(t, t) 2 tempo Cap 10 Gerência de Memória Virtual 18
Tamanho do working set Working Set P2 P3 P4 P5 P2 P5 P5 P5 P5 P6 t 1 t 2 t 3 tempo t a t b Cap 10 Gerência de Memória Virtual 19
Working Set Taxa de page fault x limite de páginas reais Taxa de page fault Limite de páginas reais Cap 10 Gerência de Memória Virtual 20
FIFO Algoritmos de Substituição de Páginas saída entrada Página mais antiga Página mais recente Cap 10 Gerência de Memória Virtual 21
Algoritmos de Substituição Ótimo Aleatório FIFO LFU LRU NRU FIFO com buffer de páginas FIFO circular de Páginas Cap 10 Gerência de Memória Virtual 22
Algoritmos de Substituição de Páginas Bits de referência e modificação Cap 10 Gerência de Memória Virtual 23
Algoritmos de Substituição de Páginas FIFO com Buffer de Páginas início Lista de páginas livres fim (a) (c) (b) fim Lista de páginas alocadas início Cap 10 Gerência de Memória Virtual 24
Algoritmos de Substituição FIFO Circular (Clock) de Páginas BR= 1 BR= 0 P1 P1 BR= 1 BR= 0 Pn página mais antiga P2 Pn P2 BR= 0 P3 página selecionada BR= 0 P3 P5 P4 P5 P4 (a) (b) Cap 10 Gerência de Memória Virtual 25
Fragmentação interna Tamanho de Página Página 0 PROGRAM Frag; VAR Página 1 PROCEDURE A; Página 2 END; Página 3 BEGIN Página 4 END Fragmentação Cap 10 Gerência de Memória Virtual 26
Paginação em Múltiplos Níveis Paginação em um nível 0 Tabela de páginas Endereço Virtual NPV Desloc 20 bits 12 bits 1 2 4 Mb 20 (2-1) 32 bits Cap 10 Gerência de Memória Virtual 27
Paginação em Múltiplos Níveis Endereço virtual em dois níveis Endereço Virtual NPV 1 10 bits NPV 2 10 bits Desloc 12 bits Tabela diretório Tabela de páginas frame Cap 10 Gerência de Memória Virtual 28
Paginação em Múltiplos Níveis Paginação em dois níveis 0 1 2 3 Tabela de páginas 0 frame 100 frame 2000 1023 0 1 2 Tabela diretório 0 1 2 3 Tabela de páginas 1 frame 4000 frame 300 100 300 3 2000 1023 4000 1023 Memória Principal Tabela de páginas 1023 0 1 2 3 1023 Cap 10 Gerência de Memória Virtual 29
Translation Lookaside Buffer Translation Lookaside Buffer (TLB) Endereço Virtual NPV Desloc Translation Lookaside Buffer (TLB) BV Tag End Físico 0 1 0 1 0 Memória principal 1 Tabela de mapeamento BV End Físico 1 1 1 0 1 0 1 Memória secundária Cap 10 Gerência de Memória Virtual 30
Translation Lookaside Buffer Campos da TLB Cap 10 Gerência de Memória Virtual 31
Proteção para páginas Proteção de Memória L G Endereço da página/ segmento Bits de proteção Cap 10 Gerência de Memória Virtual 32
Mecanismo de proteção Proteção de Memória LG 00 10 11 Descrição Sem acesso Acesso de leitura Acesso para leitura/gravação Cap 10 Gerência de Memória Virtual 33
Compartilhamento de Memória Espaço de endereçamento virtual de A Endereço virtual 1 Tabela de mapeamento de A Memória Principal Processo A Página Espaço de endereçamento virtual de B Endereço virtual 1 Tabela de mapeamento de B Processo B Cap 10 Gerência de Memória Virtual 34
Segmentação Memória Virtual por Segmentação PROGRAM Segmento; VAR A: ARRAY C: PROCEDURE X; END; FUNCTION Y; Procedimento X Programa Principal Função Y Array A END; BEGIN END Variável C Cap 10 Gerência de Memória Virtual 35
Tradução do endereço virtual Memória Virtual por Segmentação Segmento virtual Deslocamento Endereço virtual Desloc Tabela de segmentos ETS End do segmento Desloc Segmento na memória principal Deslocamento Endereço físico Cap 10 Gerência de Memória Virtual 36
Campos da ETS Memória Virtual por Segmentação Cap 10 Gerência de Memória Virtual 37
Memória Virtual por Segmentação Paginação x segmentação Cap 10 Gerência de Memória Virtual 38
Memória Virtual por Segmentação com Paginação Segmentação com paginação Segmento virtual Endereço virtual Num segmento Num página Deslocamento Tabela de segmentos ETS End da tabela de páginas Tabela de páginas ETP Endereço do frame Endereço do frame Deslocamento Endereço físico Cap 10 Gerência de Memória Virtual 39
Swapping em Memória Virtual Swapping em memória virtual Processo A Memória Principal Processo B Processo F Processo C Processo D out Swap o Processo E Memória Principal Processo C Processo A Processo F Swap in Processo B Arquivo de swapping Processo B Processo D Cap 10 Gerência de Memória Virtual 40
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 Cap 10 Gerência de Memória Virtual 41
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 Cap 10 Gerência de Memória Virtual 42