Administração de Memória 4.1 Administração básica de memória 4.2 Swapping 4.3 Memória Virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelando algoritmos de substituição de páginas 4.6 Tópicos de projeto para sistemas de paginação 4.7 Tópicos de implementação 4.8 Segmentação 1 Administração de Memória Idealmente, programadores querem memória que seja Grande Rápida Não volátil Hierarquia Cache Memória principla Disco Fita O administrador de memória cuida da hierarquia! 2 1
Administração Básica de Memória Monoprogramação sem Swapping ou Paginação - SO com um processo de usuário 3 Multiprogramação com Partições Fixas 4 2
Modelando Multiprogamação Degree of multiprogramming Utilização da CPU = 1 p n Utilização da CPU em função do número de processos na memória 5 Análise da porformance de sistemas Multiprogramados 6 3
Relocação e Proteção Não se pode saber com certeza onde o programa será carregado na memória Endereços de locação de variáveis e rotinas de código não podem ser absolutos Deve manter um programa fora das partições de outros programas Usar valores de base e limite Posições de endereços adicionadas ao valor base para mapear para o endereço físico Posições maiores que o valor limite são erradas 7 Swapping (1) Alocação de memória muda quando processos: Entram na memória Saem da memória Regiões sombreadas são memória não usadas 8 4
Swapping (2) Alocando espaço para um segmento de dados crescente Alocando espaço para segmentos de pilha e dados crescentes 9 Administração de Memória com Bit Maps Parte de memória com 5 processos, 3 buracos Tmarcas indicam unidades de alocação Regiões sombreadas estão livres bit map Mesma informação em uma lista 10 5
Administração de Memória com Listas ligadas Quatro situações para o fim do processo X 11 Memoria Virtual Paginação (1) Posição e Função da MMU 12 6
Paginação (2) Relação entre endereços virtuais e endereços físicos dados pela tabela de páginas 13 Tabelas de Páginas (1) Operação interna da MMU com 16-4 KB paginas 14 7
Tabelas de Páginas (2) Second-level page tables Top-level page table Endereço de 32 bits co 2 campos de tabelas de páginas Tabela de páginas em 2 níveis 15 Tabelas de Páginas(3) Estranda Típica de tabela de páginas 16 8
TLBs Translation Lookaside Buffers (Memória associativa) Uma TLB para acelerar a paginação 17 Tabelas de Páginas Invertidas Comparaçao entra uma tabela de páginas tradicional com uma tabela de páginas invertida 18 9
Algoritmos de Substituição de Páginas Page fault força escolha Qual página deve ser removida para ceder espaço para a página que chega Páginas modificadas devem ser salvas Não modificadas apenas sobrescritas Melhor não usar uma página usada frequentemente 19 Algoritmo Ótimo Trocar a página que será necessária no futuro mais distante Ótima mas impossível Estimativa por logging das páginas usadas em rexecuções anteriores do processo nãoéprático 20 10
Algorítmo Not Recently Used Cada página tem um bit de referência (R) e um de modificado (M) Os bis são setados quando a página é modificada ou referenciada Classificação Das páginas 1. não referenciada, não modified 2. não referenciada, modificada 3. referenciada, não modificada 4. referenciada, modificada NRU remove páginas aleatoriamente A partir das classes mais baixas numerações 21 FIFO Mantém uma lista ligada de todas as páginas Na ordem em que foram carregadas A página no início da lista é substituida Desvantagem Uma página carregada a muito tempo pode ser usada frequentemente 22 11
Segunda Chance Operação da segunda chance As páginas são classificas por FIFO Lista de págins se falta ocorre no tempo 20, A tem R bit ligado (números acima das páginas são tempos de carga) 23 Relógio 24 12
Least Recently Used (LRU) Assume que páginas usadas recentemente serão uadas novamente em breve Discarta a página não usda por mais tempo Deve manter uma lista ligada de todas as páginas Usadas maia recentemente na frente, menos usdas no fundo Atualiza esta lista a cada referência à memória!! Alternativamente, mantem um contador em cada entrada de página Escolhe a página com o menor contgador Periodicamente zera o contador 25 Simulando LRU em Software (1) LRU usando uma matriz referências às páginas na ordem 0,1,2,3,2,1,0,3,2,3 26 13
Simulando LRU em Software (2) O algoritmo do envelhecimento simula LRU em software Note 6 páginas para 5 ticks do relógio, (a) (e) 27 Algoritmo do conjunto de trabalho (Working Set) (1) O Conjunto de Trabalho é o conjunto de páginas usadas pelas k mais recentes referências à memória w(k,t) é o tamanho do conjunto de trabalho no instante, t 28 14
Algoritmo do conjunto de trabalho (Working Set)(2) 29 Relógio do Conjunto de Trabalho (WSClock) 30 15
Revisão dos Algoritmos de Substituição de Páginas 31 Modelando Algoritmos de susbtituição de Páginas Anomalia de Belady FIFO com 3 molduras de páginas P's mostram qual referência de página provoca uma falta de página 32 16
Modelando Algoritmos de susbtituição de Páginas Anomalia de Belady FIFO com 4 molduras de páginas P's mostram qual referência de página provoca uma falta de página 33 Modelando Algoritmos de susbtituição de Páginas Anomalia de Belady FIFO com 3 molduras de páginas FIFO com 4 molduras de páginas P's mostram qual referência de página provoca uma falta de página 34 17
Algoritmos de Pilha 7 4 6 5 Estado da Memória (M), após cada item da string de referência ser processado 35 A String de Distância Funções de Densidade de Probabilidade para duas Strings de Distância Hipotéticas 36 18
A String de Distância Computação da taxa de falte de páginas pela string de distância vetor C vetor F 37 Tópicos de Projeto para Sistemas de Paginação Políticas de Alocação Global vs Alocação Local (1) Configuração Original Substituição de página Local Substituição de página Global 38 19
Políticas de Alocação Global vs Alocação Local (2) Taxa de Faltas de Páginas como uma função do número de molduras atribuidas 39 Fim Apresentar a definição do trabalho de OSP do módulo memória 40 20
Próxima aula 41 Tabelas de Páginas Invertidas Comparaçao entra uma tabela de páginas tradicional com uma tabela de páginas invertida --- Usasdas em arquiteturas de 64 bits 42 21
Controle de Carga Apesar de bons projetos, os sistemas ainda podem entrar em thrashing Quando a Frequência de Faltas de Página indica: Alguns processos precisam de mais memória Nenhum processo precisa de menos memória Solução? 43 Tamanho de Página (1) Vantagens Pequeno Desvantagem 44 22
Tamanho de Página(2) Overhead devido à fragmentação interna e tabela de página Onde s e overhead = + p page table space p 2 s = tamanho médio do processo em bytes p = tamanho da página em bytes e = entrada de página internal fragmentation Optimized when p = 2se 45 Separar espaços de instruções e Dados Um espaço de endereçamento Espaços separados para I e D 46 23
Páginas Compartilhadas 47 Política de Limpeza Requerida para um processo em background process, daemon de paginação Periodicamente inspeciona a memória Quando poucas molduras estão livres Seleciona uma página para ser descartada Pode usar mesmo algoritmo(clock) Como o algoritmos regular de troca de páginas mas com parâmetros diferentes 48 24
Tópicos de Implementação Envolvimento do So com Paginação 1. Criação do processo Determina tamanho do programa Cria a tabela de páginas 2. Execução do processo MMU iniciada para o novo processo TLB flushed 3. Momento da falta de página Determina endereço virtual causando a falta swap página alvo fora e requerida para dentro 4. Termino do processo Libera tabela de páginas e páginas 49 Administração de Falta de páginas (1) 1. Hardware traps para kernel 2. Registradores gerasi salvos 3. SO determina qual página virtual é requerida 4. SO checa validade do endereço, busca a moldura de página 5. Se moldura selecionada estiver suja, escreve-a em disco 50 25
Administração de Falta de páginas (2) 6. SO traz página nova do disco 7. As tabelas de páginas são atualizadas Instrução que provocou a falta volta para seu início 8. Processo de falta restaurado 9. Registradores restaurados Programa continua 51 Backup de Instrução Uma instrução provocando uma falta de página 52 26
Travando páginas em memória Memória virtual e ES interagem ocasionalmente Processo faz uma chamada para uma leitura de um dispositivo em um buffer Enquanto espera por ES, outro processo inicia Ocorre uma falta de página O buffer do primeiro processo pode ser escolhido para page-out É necessário especificar algumas páginas travadas (locked) 53 Backing Store (a) Paginação para área de swap estática (b) Backing up páginas dinamicamente 54 27
Separação de Política e Mecanismo Administração de falta de página com um paginador externo 55 Segmentação (1) Espaço de endereçamnto uni-dimensional com tabelas crescentes Uma tabela pode invadir a outra 56 28
Segmentação (2) Permite cada tabela crescer/encolher independentemente 57 Segmentação (3) Comparação entre paginação e segmentação 58 29
Implementação de segmentação pura (a)-(d) desenvolvimento de xadrez (e) Remoção por compactação 59 Segmentação com paginação: MULTICS (1) Segmento descritor aponta para tabelas de páginas Segmento descritor números são comprimentos dos campos 60 30
Segmentação com paginação : MULTICS (2) Um endereço virtual MULTICS de 34- bit 61 Segmentação com paginação : MULTICS (3) Conversão de um endereço de duas partes em um endereço de memória 62 31
Segmentação com paginação: MULTICS (4) Versão simplificada da MULTICS TLB Existencia de 2 tamanhos de páginas faz a TLB mais complicada 63 Segmentação com paginação: Pentium (1) Um seletor Pentium 64 32
Segmentação com paginação: Pentium (2) Descritor de segmento de código do Pentium Segmentos de dados diferentes (ligeiramente) 65 Segmentação com paginação: Pentium (3) Conversão de (selector, offset) para endereço linear 66 33
Segmentação com paginação: Pentium (4) Mapeamento do endereço linear em endereço físico 67 Segmentação com paginação: Pentium (5) Level Proteção no Pentium 68 34