Melhorias Sistemas Operacionais Paginação por demanda Substituição de páginas Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 30 Brasil Creative Commons Para visualizar uma cópia desta licença, visite http://creativecommonsorg/licenses/by-nc-nd/30/br/ Aula 23 Usar do livro do Dhamdere como base (págs 436 a 447) Usar os exemplos dele para substituição de página Explicação da anomalia de Belady e a propriedade de pilha Arrumar o discurso dos algoritmos de clock Sistemas Operacionais 2 Introdução Política de substituição Gerência da memória virtual executa duas decisões importantes Na ocorrência de uma falta de páginas (page-fault) decidir qual página deve ser substituída política de substituição de páginas Decidir quanto de memória (quantidade de quadros) deve ser alocado para cada processo política de alocação de quadros Substituição de páginas Necessário quando ocorre uma falta de página (page-fault) e não há quadros livres disponíveis Objetivo: escolher uma página (a vítima ) para ir para a área de swap liberando o quadro para a página faltante Paginação por demanda = Política de substituição de páginas + Políticas de alocação de quadro Meta a ser atingida Escolher como página vítima aquela que provavelmente não será referenciada em um futuro próximo Critério básico de escolha Determinar a página menos necessária Possível considerar: Nem toda página necessita sofrer page-out Páginas não modificadas e páginas read-only (código) Páginas que nunca deve ser substituídas (frame locking ou pinning) eg: código e estruturas de dados do sistema operacional, buffers de E/S Sistemas Operacionais 3 Sistemas Operacionais 4
Algoritmos de substituição de página Avaliação dos algoritmos de substituição Implementam uma política com o objetivo de minimizar a taxa de falta de páginas Algoritmos utilizados: FIFO LRU Aproximações de LRU Atuar para diminuir p! Necessário saber a quantidade de quadros disponíveis Adicionar capacidade na RAM aumenta os quadros disponíveis e, portanto, cai a taxa de faltas de páginas Baseado em string de referência Modelo que representa o traço de execução de um programa 1 m n m: número de página alocada em memória por um processo n: número de páginas distintas no string de referência Simula uma sequência de acessos a páginas eg: string de referência: 6 4 7 2 3 1 5 6 7 8 9 1 2 9 3 5 6 Critérios de avaliação Quantidade de falta de páginas Quantidade total de páginas movimentadas de/para a memória Sistemas Operacionais 5 Sistemas Operacionais 6 Algoritmo ótimo First in, First Out (FIFO) Apresenta a menor taxa de falta de páginas Mais simples Objetivo: Substituir a página que não será usada pelo maior período de tempo Critério é baseado na hora que uma página será usada Problema é que necessita conhecer o futuro Princípio Associa a cada página a hora em que foi trazida para memória Substitui a página mais antiga na memória (página vítima) Pode ser implementada por uma fila Não é necessário registrar uma hora Ao ser carregada na memória, a página vai para o final da fila Substitui sempre a que está na frente da fila Problema Solução é usar aproximações do futuro Usado como referência para comparar/avaliar algoritmos Não considera a utilização da página Página pode ser antiga, mas ainda ser útil Sistemas Operacionais 7 Sistemas Operacionais 8
Exemplo de FIFO Problemas com FIFO Quadros na memória principal são alocados a páginas na forma de um buffer circular Substitui a página que está a mais tempo na memória Decisão com base na hora em que a página foi carregada na memória Exemplo: Não considera o uso da página Página substituída pode ser necessária logo em seguida Anomalia de Belady A taxa de falhas aumenta com o aumento dos quadros alocados eg: dez falhas para quatro quadros alocados contra nove falhas para três quadros alocados Causado por um dado padrão de acesso e o emprego de um critério de antiguidade e não pelo uso Sistemas Operacionais 9 Sistemas Operacionais 10 Least Recently Used* (LRU) Implementação de Least Recently Used (LRU) Página a ser substituída é a página que foi referenciada a mais tempo Pelo princípio da localidade esta página deve ser a de menor probabilidade de ser referenciada em um futuro próximo Cada página possui a hora da última referência Decisão com base na hora em que a página foi usada pela última vez Exemplo: Dois mecanismos básicos Contador Pilha Sistemas Operacionais *Menos recentemente usada 11 Sistemas Operacionais 12
Implementação de LRU por contadores Implementação de LRU por pilha Entrada na tabela de páginas recebe um campo de tempo de uso Tempo da última referência (time stamp) por relógio físico ou lógico Valor é transferido para o campo de uso sempre a página for acessada Mantém a última referência Problemas Custo computacional e desempenho Atualização da entrada na tabela de páginas Seleção da página vítima implica varrer a tabela a procura do tempo de uso mais antigo Estouro da representação do relógio Princípio básico Sempre que uma página for referenciada ela é inserida no topo da pilha Topo da pilha está a página referenciada mais recentemente Para substituição Base da pilha está a página referenciada menos recentemente (vítima) Implementação por fila duplamente encadeada Problema Custo de processamento (software) Sistemas Operacionais 13 Sistemas Operacionais 14 Aproximações de LRU via suporte de hardware Algoritmo de histório de bits de referência Mecanismo de contador e pilha oneram o processamento Necessário contar com auxílio de hardware Hardware (MMU) deve suportar bit(s) de referência Mecanismo limitado Bit de referência Posto em 1 sempre que a página for acessada (página não acessada=0) Objetivo é substituir página cujo bit de referência é igual a zero Carregada em memória e não empregada Desvantagem: Bit de referência não indica a ordem de acesso (não se sabe uso passado ) Necessário ter um critério para zerar o bit de referência, senão, com o passar do tempo a tendência é que todas as páginas sejam referenciadas Princípio básico Adicionar a noção de ordem através da manutenção de vários bits de referência Implementação Associar um registrador de deslocamento (shift register) a cada página A cada t consulta o bit de referência e atualiza registrador (shift register) e zera o bit de referência Critério de substituição Cada página possui um número que indica sua ordem de acesso Substitui a que tiver o menor número Sistemas Operacionais 15 Sistemas Operacionais 16
Exemplo: construção de histórico de bits de referência Algoritmo de segunda chance (relógio) Aproxima LRU empregando um único bit de referência (BR ou r) Desvantagem: custo de implementação em hardware (área) e em software (processamento) Implementação Mantém uma lista circular com todas as páginas residentes na memória e um ponteiro para a página próxima vítima (ordenamento FIFO) Se o ponteiro aponta para uma página com: BR = 0: a página é substituída e o ponteiro avança de uma unidade BR = 1 o bit é zerado e o ponteiro é incrementado de uma unidade Segunda chance vem do fato que a página com BR=1, recebe a chance de ficar em memória e ser referenciado antes da próxima seleção de vítima O algoritmo de base é FIFO Degenera para FIFO quando todos os bits de referência estão marcados Força uma passagem completa na lista para zerá-los Sistemas Operacionais 17 Sistemas Operacionais 18 Esquematização do algoritmo de segunda chance Algoritmo de segunda chance melhorado 8 7 Pag 222 Pag 33 n 6 Pag 9 ANTES Pag 67 0 Pag 19 Pag 1 próximo 5 1 Pag 45 Pag 191 Pag 556 Pag 13 4 2 3 8 Page-out Pag 222 Pag 33 7 n Pag 9 6 Pag 67 DEPOIS próximo 0 Pag 19 Pag 1 5 1 Pag 45 Pag 191 Pag 727 Pag 13 Page-in 4 2 3 Seleção da página vítima é feita com base no bit r e no bit sujo (s) Bit r=0; s=0: não usada recentemente, nem modificada substitui a página Bit r=0; s=1: não usada recentemente, mas modificada Zera bit s e incrementa ponteiro Bit r=1; s=0: usada recentemente, mas não modificada zera bit r e incrementa ponteiro de uma unidade Bit r=1; s=1: usada recentemente e modificada zera bit r, incrementa ponteiro de uma unidade Ordem de preferência para a substituição Evitar que página a ser substituída seja escrita no disco (page-out) Páginas não modificadas na memória podem ser sobre-escritas Hardware deve prover bit sujo (dirty bit); indicação se página foi modificada Sistemas Operacionais 19 Sistemas Operacionais 20
Algoritmos com buffer de página Leituras complementares Procedimentos usados junto com um algoritmo de substituição Banco de quadros livres Objetivo: reiniciar o processo com falta de página sem esperar pela vítima liberar um quadro Página que provocou a falta recebe um quadro do banco de livres Escolhe uma página vitima e adiciona-se seu quadro ao banco de livres Variações Lista de páginas modificadas Ir reescrevendo as páginas no disco em background Zera o bit de sujo após a escrita Manter banco de quadros livres, mas marcar a página que ocupava o quadro Ideia é, se for o caso, reaproveitar a página sem fazer um novo page-in A Tanenbaum Sistemas Operacionais Modernos (3 a edição), Pearson Brasil, 2010 Capítulo 3: seção 34 A Silberchatz, P Galvin; Sistemas Operacionais (7 a edição) Campus, 2008 Capítulo 9: seção 94 e 95 R Oliveira, A Carissimi, S Toscani; Sistemas Operacionais Editora Bookman 4 a edição, 2010 Capítulo 7 (seções 72 e 73) Sistemas Operacionais 21 Sistemas Operacionais 22