Capítulo 4 Gerenciamento de Memória 4.1 Gerenciamento básico de memória 4.2 Troca de processos 4.3 Memória virtual 4.4 Algoritmos de substituição de páginas 4.5 Modelagem de algoritmos de substituição de páginas 4.6 Questões de projeto para sistemas de paginação 4.7 Questões de implementação 4.8 Segmentação Pearson Education Sistemas Operacionais Modernos 2ª Edição 1
Gerenciamento de Memória Idealmente, o que todo programador deseja é dispor de uma memória que seja grande rápida não volátil Hierarquia de memórias pequena quantidade de memória rápida, de alto custo - cache quantidade considerável de memória principal de velocidade média, custo médio gigabytes de armazenamento em disco de velocidade e custo baixos O gerenciador de memória trata a hierarquia de memórias Pearson Education Sistemas Operacionais Modernos 2ª Edição 2
Gerenciamento Básico de Memória Monoprogramação sem Troca de Processos ou Paginação Três maneiras simples de organizar a memória - um sistema operacional e um processo de usuário Pearson Education Sistemas Operacionais Modernos 2ª Edição 3
Multiprogramação com Partições Fixas Partições fixas de memória a) filas de entrada separadas para cada partição b) fila única de entrada Pearson Education Sistemas Operacionais Modernos 2ª Edição 4
Relocação e Proteção Não se sabe com certeza onde o programa será carregado na memória Localizações de endereços de variáveis e de código de rotinas não podem ser absolutos Uma possível solução: instruções do programa são modificadas segundo a partição de memória em que ele será carregado Uma solução para relocação e proteção: uso de valores base e limite localizações de endereços são somadas ao valor base antes de serem mapeadas na memória física localizações de endereços maior que o valor limite indicam erro Pearson Education Sistemas Operacionais Modernos 2ª Edição 5
Registrador-base e limite Utilizados em versões simples da realocação dinâmica Limitam o endereçamento de um processo Desvantagem Necessidade de executar uma adição e uma comparação e, cada referência a memória. Pearson Education Sistemas Operacionais Modernos 2ª Edição
Troca de memória Quantidade de RAM p/ todos os processos > memória pode comportar Solução: Swapping Memória virtual Alocação e desalocação de processos criam buracos na memória Podem ser combinados com a compactação de memória Não usada em virtude do tempo de processamento gasto Tamanho do espaço de locação Se processo possui tamanho fixo = alocação exata Se processo possui tamanho variável = alocação extra é uma boa idéia. Pearson Education Sistemas Operacionais Modernos 2ª Edição
Troca de Processos (1) Alterações na alocação de memória à medida que processos entram e saem da memória Regiões sombreadas correspondem a regiões de memória não utilizadas naquele instante Pearson Education Sistemas Operacionais Modernos 2ª Edição 8
Troca de Processos (2) a) Alocação de espaço para uma área de dados em expansão b) Alocação de espaço para uma pilha e uma área de dados, ambos em expansão Pearson Education Sistemas Operacionais Modernos 2ª Edição 9
Gerenciando a Memória Livre Mapa de bits Tamanho da unidade de locação é inversamente proporcional ao tamanho do mapa de bits Unidade grande = muita memória desperdiçada Simples Problema para encontrar sequência de bits livres (busca muito lenta) Lista encadeada Lista com posições de memória livre e ocupada Pearson Education Sistemas Operacionais Modernos 2ª Edição
Gerenciamento de Memória com Mapas de Bits Pearson Education Sistemas Operacionais Modernos 2ª Edição 11
Gerenciamento de Memória com Listas Encadeadas Quatro combinações de vizinhança para o processo X em término de execução Pearson Education Sistemas Operacionais Modernos 2ª Edição 12
Lista Encadeada Algoritmos de busca usados: First fit (primeiro encaixe) Next fit (próximo encaixe) Best fit (melhor encaixe) Mais lento Desperdiça mais memória Worst fit (pior encaixe) Pesquisas mostram não ser uma boa idéia Todos os 4 poderiam ser + rápidos se houvessem listas separadas Quick fit (encaixe mais rápido) Mantém listas separadas p/ alguns tamanhos de memória mais solicitados. Pearson Education Sistemas Operacionais Modernos 2ª Edição
Exercícios 1. Como funciona o esquema de multiprogramação com partições fixas. Por que ele apresenta um sério problema quando trabalha-se com filas de entradas separadas. 2. Pra que servem os registradores base e limite? 3. Qual a principal diferença entre o modelo de multiprogramação com partições fixas e o modelo de multiprogramação com troca de processos. 4. Qual a principal desvantagem do gerenciamento de memória com mapa de bits? 5. Diferencie os algoritmos first fit e next fit. 6. O algoritmo best fit sempre busca o melhor espaço livre que suporte a alocação do processo. Por esta razão é um dos algoritmos que melhor aproveita os espaços de endereçamento. Verdadeiro ou Falso. Justifique. 7. Quais as dificuldades de se trabalhar com listas de unidades de memória livres e ocupadas separadas? Pearson Education Sistemas Operacionais Modernos 2ª Edição
Memória virtual - paginação Tamanho dos softwares aumenta mais rápido que o tamanho das memórias 1960 Divisão manual e sujeita a erros, de programas em módulos chamados módulos de sobreposição Espaço de endereçamento dividido em blocos (páginas) MMU Mapeia endereços virtuais em endereços físicos Transferências de páginas completas Pearson Education Sistemas Operacionais Modernos 2ª Edição
Memória virtual - paginação Pearson Education Sistemas Operacionais Modernos 2ª Edição
Memória virtual - paginação Bit presente/ausente X na figura Falta de página Pearson Education Sistemas Operacionais Modernos 2ª Edição
Memória Virtual Tabela de páginas Pearson Education Sistemas Operacionais Modernos 2ª Edição
Estrutura de uma entrada de uma tabela de páginas Pearson Education Sistemas Operacionais Modernos 2ª Edição
Acelerando a paginação Problemas na implementação da paginação: O mapeamento do endereço virtual para o endereço físico deve ser rápido. Se o espaço virtual for grande, a tabela de páginas será grande. Pearson Education Sistemas Operacionais Modernos 2ª Edição
Buffers para Tradução de Endereços - TLB Mapeia endereços físicos sem passar pela tabela de páginas Apenas endereços mais usados Page miss (ausência de página) Page hit (presença de página) Pearson Education Sistemas Operacionais Modernos 2ª Edição
Gerenciamento da TLB por software TLB feita pelo SO e não por hardware TLB grande = eficiência da TLB por software aceitável, com MMU simples com maior área no CPU p/ outros recursos Estratégias p/ melhorar o desempenho SO usa intuição para descobrir páginas usadas e antecipar carregamento. Ausência na TLB Soft miss (ausência leve) Hard miss (ausência completa) Pearson Education Sistemas Operacionais Modernos 2ª Edição
Tabelas de páginas multinível Pode possuir 3, 4 ou mais níveis Mais níveis = maior flexibilidade Duvidoso se complexidade de hardware > que 3 níveis seja vantajosa. Pearson Education Sistemas Operacionais Modernos 2ª Edição
Tabelas de páginas invertidas Pearson Education Sistemas Operacionais Modernos 2ª Edição
Exercícios 1. O que são páginas em SO? E molduras de páginas? 2. O que é falta de página? 3. Qual a função da TLB? 4. Diferencie soft miss e hard miss. 5. Qual a função de uma tabela de páginas. 6. Como funciona a tabela de páginas multinível? 7. Como funciona a tabela de páginas invertida? Qual sua principal desvantagem? Pearson Education Sistemas Operacionais Modernos 2ª Edição
Memória Virtual Paginação (1) Localização e função da MMU Pearson Education Sistemas Operacionais Modernos 2ª Edição 26
Memória Virtual Paginação (2) A relação entre endereços virtuais e endereços físicos de memória dada pela tabela de páginas Pearson Education Sistemas Operacionais Modernos 2ª Edição 27
Tabelas de Páginas (1) Operação interna de uma MMU com 16 páginas de 4KB26 Pearson Education Sistemas Operacionais Modernos 2ª Edição 28
Tabelas de Páginas(2) a) Endereço de 32 bits com 2 campos para endereçamento de tabelas de páginas b) Tabelas de páginas com 2 níveis Pearson Education Sistemas Operacionais Modernos 2ª Edição 29
Tabelas de Páginas(3) Entrada típica de uma tabela de páginas Pearson Education Sistemas Operacionais Modernos 2ª Edição 30
Memória Associativa ou TLB TLB para acelerar a paginação Pearson Education Sistemas Operacionais Modernos 2ª Edição 31
Tabelas de Páginas Invertidas Comparação de uma tabela de páginas tradicional com uma tabela de páginas invertidas Pearson Education Sistemas Operacionais Modernos 2ª Edição 32
Algoritmos de Substituição de Páginas A falta de página força uma escolha qual página deve ser removida alocação de espaço para a página a ser trazida para a memória A página modificada deve primeiro ser salva se não tiver sido modificada é apenas sobreposta Melhor não escolher uma página que está sendo muito usada provavelmente precisará ser trazida de volta logo Pearson Education Sistemas Operacionais Modernos 2ª Edição 33
O Algoritmo de Substituição de Página Ótimo Substitui a página necessária o mais a frente possível ótimo mas não realizável Estimada através de... registro do uso da página em execuções anteriores do processo... apesar disto ser impraticável Pearson Education Sistemas Operacionais Modernos 2ª Edição 34
O Algoritmo de Substituição de Página Não Usada Recentemente (NUR) Cada página tem os bits Referenciada (R) e Modificada (M) Bits são colocados em 1 quando a página é referenciada e modificada As páginas são classificadas Classe 0: não referenciada, não modificada Classe 1: não referenciada, modificada Classe 2: referenciada, não modificada Classe 3: referenciada, modificada NUR remove página aleatoriamente da classe de ordem mais baixa que não esteja vazia Pearson Education Sistemas Operacionais Modernos 2ª Edição 35
Algoritmo de Substituição de Página Primeira a Entrar, Primeira a Sair Mantém uma lista encadeada de todas as páginas página mais antiga na cabeça da lista página que chegou por último na memória no final da lista Na ocorrência de falta de página página na cabeça da lista é removida nova página adicionada no final da lista Desvantagem página há mais tempo na memória pode ser usada com muita freqüência Pearson Education Sistemas Operacionais Modernos 2ª Edição 36
Algoritmo de Substituição de Página Segunda Chance (SC) Operação do algoritmo segunda chance a) lista de páginas em ordem FIFO b) estado da lista em situação de falta de página no instante 20, com o bit R da página A em 1 (números representam instantes de carregamento das páginas na memória) Pearson Education Sistemas Operacionais Modernos 2ª Edição 37
Algoritmo de Substituição de Página Relógio Pearson Education Sistemas Operacionais Modernos 2ª Edição 38
Menos Recentemente Usada (MRU)35 Assume que páginas usadas recentemente logo serão usadas novamente retira da memória página que há mais tempo não é usada Uma lista encadeada de páginas deve ser mantida página mais recentemente usada no início da lista, menos usada no final da lista atualização da lista à cada referência à memória Alternativamente manter contador em cada entrada da tabela de página escolhe página com contador de menor valor zera o contador periodicamente Pearson Education Sistemas Operacionais Modernos 2ª Edição 39
Simulação do MRU em Software (1) MRU usando uma matriz páginas referenciadas na ordem 0,1,2,3,2,1,0,3,2,3 Pearson Education Sistemas Operacionais Modernos 2ª Edição 40
Simulação do MRU em Software (2) O algoritmo do envelhecimento (aging) simula o MRU em software Note 6 páginas para 5 tiques de relógio, (a) (e) Pearson Education Sistemas Operacionais Modernos 2ª Edição 41
O Algoritmo de Substituição de Página do Conjunto de Trabalho Paginação pura paginação por demanda Maioria processos apresentam localidade de referência Pequena parte das páginas é referenciada a cada instante Conjunto de trabalho conjunto atual de páginas Modelo de conjunto de trabalho ou pré-paginação tenta assegurar que as páginas estejam presentes na memória antes do processo ser executado. Pearson Education Sistemas Operacionais Modernos 2ª Edição 42
O Algoritmo de Substituição de Página do Conjunto de Trabalho O algoritmo do conjunto de trabalho Pearson Education Sistemas Operacionais Modernos 2ª Edição 43
O Algoritmo de Substituição de Página WSClock Melhoramento do Conjunto de trabalho, baseado no relógio Amplamente utilizado Pearson Education Sistemas Operacionais Modernos 2ª Edição 44
O Algoritmo de Substituição de Página WSClock Operação do Algoritmo WSClock Pearson Education Sistemas Operacionais Modernos 2ª Edição 45
Revisão dos Algoritmos de Substituição de Página Pearson Education Sistemas Operacionais Modernos 2ª Edição 46
Segmentação Em alguns casos ter 2 ou mais espaços de endereçamento separados é melhor do que ter apenas 1 Exemplo: Um compilador tem muitas tabelas que são construídas conforme a compilação ocorre, possivelmente incluindo: O código-fonte sendo salvo para impressão (em sistema em lotes). A tabela de símbolos os nomes e atributos das variáveis. A tabela com todas as constantes usadas, inteiras e em ponto flutuante. A árvore sintática, a análise sintática do programa. A pilha usada pelas chamadas de rotina dentro do compilador. Pearson Education Sistemas Operacionais Modernos 2ª Edição
Segmentação Em um endereçamento único, podemos chegar em uma situação onde haverá entradas livres para determinada tabela e espaço esgotado para outros. Pearson Education Sistemas Operacionais Modernos 2ª Edição
Segmentação Outra possibilidade é trabalhar com segmentos independentes onde o conteúdo do segmento poderá crescer sem encontrar nada em seu espaço de endereçamento capaz de impedir seu crescimento. Pearson Education Sistemas Operacionais Modernos 2ª Edição
Segmentação Comparação entre paginação e segmentação Pearson Education Sistemas Operacionais Modernos 2ª Edição 50
Implementação de Segmentação Pura (a)-(d) Desenvolvimento de fragmentação externa (e) Remoção da fragmentação via compactação Pearson Education Sistemas Operacionais Modernos 2ª Edição 51
Segmentação com Paginação: MULTICS (1) a) Descritores de segmentos apontam para tabelas de páginas b) Descritor de segmento números indicam tamanhos dos campos Pearson Education Sistemas Operacionais Modernos 2ª Edição 52
Segmentação com Paginação: MULTICS (2) Um endereço virtual de 34 bits no MULTICS Pearson Education Sistemas Operacionais Modernos 2ª Edição 53
Segmentação com Paginação: MULTICS (3) Conversão de um endereço MULTICS de duas partes em um endereço da memória principal Pearson Education Sistemas Operacionais Modernos 2ª Edição 54
Segmentação com Paginação: MULTICS (4) Versão simplificada da TLB do MULTICS Existência de dois tamanhos de páginas torna a TLB real mais complicada Pearson Education Sistemas Operacionais Modernos 2ª Edição 55
Exercícios 1. Explique o funcionamento do algoritmo de substituição de página de conjunto de trabalho. 2. Qual a vantagem de existir a segmentação? 3. Como funciona o endereçamento na segmentação. 4. Na sua opinião, quem é melhor: segmentação pura ou paginação Pearson Education Sistemas Operacionais Modernos 2ª Edição