1 / 63

Gerenciamento de Memória (Algoritmos de Substituição de Páginas)

Gerenciamento de Memória (Algoritmos de Substituição de Páginas). Prof. Alexandre Monteiro Recife. Contatos. Prof. Guilherme Alexandre Monteiro Reinaldo Apelido: Alexandre Cordel E-mail/ gtalk : alexandrecordel@gmail.com greinaldo@fbv.edu.br Site: http://www.alexandrecordel.com.br/fbv

Download Presentation

Gerenciamento de Memória (Algoritmos de Substituição de Páginas)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gerenciamento de Memória (Algoritmos de Substituição de Páginas) Prof. Alexandre Monteiro Recife

  2. Contatos • Prof. Guilherme Alexandre Monteiro Reinaldo • Apelido: Alexandre Cordel • E-mail/gtalk: alexandrecordel@gmail.com greinaldo@fbv.edu.br • Site: http://www.alexandrecordel.com.br/fbv • Celular: (81) 9801-1878

  3. Algoritmos de Substituição de Página • Como dito anteriormente, quando ocorre uma falha de página, o Sistema Operacional deve selecionar uma das molduras para disponibilizar para a página não mapeada. Se a página a ser retirada da moldura tiver sido modificada, ela deve ser atualizada em disco. • Caso contrário, a página pode ser retirada da moldura, ou seja, da memória principal, sem necessitar de atualização em memória. A página escolhida é, comumente, chamada de página vítima.

  4. Algoritmos de Substituição de Página • A escolha aleatória de uma página vítima pode influenciar diretamente o desempenho do sistema. • O ideal seria retirar uma página não modificada e que não é utilizada constantemente. • uma página modificada precisa ser copiada para disco, mas uma não modificada pode ser sobrescrita • se for retirado uma página muito utilizada, é provável que seja logo referenciada e necessite voltar para a memória principal, gerando novamente uma falha de página. • Para a escolha de qual página será retirado da memória, o algoritmo de substituição de páginas determina qual página deve ser removida e usa as informações estatísticas contidas nas tabelas de páginas, que serão descritos a seguir.

  5. Algoritmos de Substituição de Páginas

  6. O Algoritmo de Substituiçãode PáginaÓtimoou Ideal • Substitui a página que será acessada no futuro mais remoto • Infelizmente, não é viável na prática, pois exigiria um conhecimento sobre todos os acessos futuros. • Estimadaatravés de... • registro do usodapáginaemexecuçõesanteriores do processo ... • apesardisto ser impraticável

  7. O Algoritmo de Substituição de Página Não Usada Recentemente (NUR) • Cadapágina tem os bits (R) Referenciada / Acessada e (M) Modificada/Alterada • Bits sãocolocadosem 1 quando a página é referenciada e modificada • As páginassãoclassificadas • Classe 0: nãoreferenciada, nãomodificada • Classe 1: nãoreferenciada, modificada • Classe 2: referenciada, nãomodificada • Classe 3: referenciada, modificada • NUR remove páginaaleatoriamente • daclasse de ordemmaisbaixaquenãoestejavazia

  8. Algoritmo de Substituição de PáginaPrimeira a Entrar, Primeira a Sair • Mantémumalistaencadeada de todas as páginas • páginamaisantiganacabeçadalista • páginaquechegouporúltimonamemória no final dalista • Na ocorrência de falta de página • páginanacabeçadalista é removida • nova páginaadicionada no final dalista • Desvantagem • páginahámais tempo namemóriapode ser usada com muitafreqüência

  9. Algoritmo de Substituição de PáginaSegunda Chance (SC) • Operação do algoritmosegunda chance • lista de páginasemordem FIFO • estadodalistaemsituação de falta de página no instante 20, com o bit RdapáginaAem 1 (verificado se seu bit de referência tenha valor 1, caso ele tenha valor 1, seu valor é mudado para 0 e esta página NÃO é retirada, é tratada como mais recentemente carregada)

  10. Algoritmo de Substituiçãode PáginaRelógio • Todos as páginas carregadas estão em uma lista circular. • Ponteiro aponta para a página P15, a próxima página ser testada a partir da página P14. • Note neste algoritmo, que a próxima página que será retirada não será nem as páginas 15, 16, 1 e 2, pois seus bits de referência tem valores 1. a próxima vítima será a página 3 • Alternativa para o algoritmo da 2a. Chance (sem necessidade de manipular fila)

  11. MenosRecentementeUsada(MRU) ou LRU (Least Recently Used) • Assume quepáginasusadasrecentemente logo serãousadasnovamente • retiradamemóriapáginaquehámais tempo não é usada • Umalistaencadeada de páginasdeve ser mantida • páginamaisrecentementeusada no iníciodalista, menosusada no final dalista • atualizaçãodalista à cadareferência à memória • Alternativamentemantercontadoremcadaentradadatabela de página • escolhepágina com contador de menor valor • zera o contadorperiodicamente

  12. LRU • A implementação do algoritmo LRU é muito custoso, segundo Tanenbaum, pois é preciso manter uma lista encadeada de todas as páginas na memória, com as páginas mais recentemente utilizadas na frente e as menos recentemente utilizadas no fundo. • Essa lista deve ser atualizada a cada referência de página, o que pode gerar uma grande modificação na lista. • Imagine que, uma página do fim da lista (pouco referenciada) seja referenciada. É preciso, então deslocar esta página para o início da fila.

  13. MRU usando matrizes • HW especial que mantém uma matriz n x n, onde n é o número de molduras. • Inicialmente todos os bits da matriz são 0. • Sempre que a moldura k é referenciada, o hardware seta todos os bits da linha k para 1, e depois zera todos os bits da coluna k para zero. • Deste modo, a qualquer instante a linha com o menor valor binário é a menos recentemente usada.

  14. Simulação do LRU em Software (1) LRU usandoumamatriz – páginasreferenciadasnaordem0,1,2,3,2,1,0,3,2,3

  15. Algoritmo NFU (Não Frequentemente Usado) • Não Usada Frenquentemente • Um contador por página na memória • A cada tick, o S.O. percorre todas as páginas na memória e soma • o bit R (0 ou 1) de cada página ao seu respectivo contador • Na ocorrência de falta de página, a página c/ o menor contador é substituída • Problema: o algoritmo nunca esquece (reseta) o contador

  16. Envelhecimento (Aging)Simulaçãodo LRU emSoftware • O algoritmodo envelhecimento(aging)simulao LRU em software • Note 6 páginaspara 5 tiques de relógio, (a) – (e)

  17. O Algoritmo de Substituição de Páginado Conjunto de Trabalho (1)

  18. O Algoritmo de Substituição de Páginado Conjunto de Trabalho(2)

  19. O Algoritmo de Substituiçãode PáginaWSClock Operação do AlgoritmoWSClock Considera: Conjunto de Trabalho; Referenciadas e; Modificadas.

  20. Revisão dos Algoritmos de Substituição de Página

  21. Modelagem de Algoritmos deSubstituição de Página– Anomalia de Belady • (a) FIFO com 3 molduras de página • (b) FIFO com 4 molduras de página • Pmostraquaisreferências de páginacausaramfaltas de página

  22. Algoritmos de Pilha Estado do vetor de memória, M, após cada item na cadeia de referências ter sido processado

  23. A Cadeia de Distâncias Funções densidade de probabilidade para duas cadeias de distâncias hipotéticas

  24. A Cadeia de Distâncias • Cálculo da freqüência de faltas de página (PFF) • o vetorC • o vetorF

  25. Questões de Projeto para Sistemas de PaginaçãoPolítica de Alocação Local x Global (1) (a) Configuração original (b) Substituição local (c) Substituição global

  26. Política de Alocação– Ultra-paginaçãoLocal x Global (Thrashing) • Fenômeno que ocorre quando o gerenciador de memória fica sobrecarregado com cópias de páginas entre memória e disco. • Alta frequência de faltas de página: ocorre quando um processo possui menos páginas na memória do que o seu conjunto de páginas em uso (working-set).

  27. Controle de Carga • Mesmo com um bomprojeto, o sistemaaindapodesofrerpaginaçãoexcessiva(thrashing) • Quando o algoritmo PFF indica • algunsprocessosprecisam de maismemória • mas nenhumprocessoprecisa de menos • Solução :Reduzir o número de processosquecompetem pela memória • levaralguns deles para disco e liberar a memória a elesalocada • reconsiderargrau de multiprogramação

  28. EspaçosSeparados de Instruções e Dados • Espaço de endereçamento único • Espaços separados de instruções (I) e dados (D)

  29. Páginas Compartilhadas Dois processos que compartilham o mesmo código de programa e, por conseqüência, a mesma tabela de páginas para instruções

  30. Política de Limpeza • Precisa de um processoqueexecutaembackground, um daemon de paginação • Inspecionaperiodicamente o estado da memória • Verifica se páginamodificadasforamescritasem disco. • Quandoapenasalgumasmolduras de páginaestãodisponíveis • Selecionapáginas a seremremovidasusando um algoritmo de substituição • Podeserimplementadaatravés de lista circular (relógio) com doisponteiros • Ponteiro da frentecontroladopelo daemon de paginação • Ponteiro de trásusado para substituição de página (como no do relógio)

  31. Questões de ImplementaçãoEnvolvimento do S.O. com a Paginação Quatrocircunstâncias de envolvimento: • Criação de processo • determinatamanho do programa • criatabela de página (swap area = área de troca de disco) • Execução de processo • MMU reiniciatabela de páginaspara novo processo • TLB é esvaziada • Ocorrência de falta de página • determinaendereço virtual quecausou a falta • descarta, se necessário, páginaantiga (política de limpeza) • carregapáginarequisitada para a memória e aponta para instrução • Terminação de processo • Liberatabela de páginas, páginas, e espaçoem disco que as páginasocupam, casonãosejamcompartilhadas.

  32. Tratamento de Faltas de Página (1) • Hardware desvia a execução para o núcleo (salvaestadoatual do processonapilha) • Salvaconteúdo de registradores e outrasinformaçõesvoláteis • SO determina a página virtual necessáriaquegerou a falta de página. • SO checavalidade de endereço, buscamoldura de páginanamemória. • Se moldura de páginaselecionadafoimodificada (suja), salvá-la em disco

  33. Tratamento de Faltas de Página (2) • SO escreve a páginamodificadaem disco e buscaem disco página virtual referenciada • Tabela de páginas é atualizada • Estado da instruçãoquecausoufalta de página é recuperado e aponta para a instrução • Processoquecausoufalta de página é escalado para executar • Programa continua

  34. Fixação de PáginasnaMemória • Memória virtual e E/S interagemocasionalmente • Processoemitechamadaaosistema para ler do disco para o buffer • enquantoespera pela E/S, outro processoinicia • ocorreumafalta de página • buffer do primeiroprocessopodeserescolhido para serlevado para disco • Soluçãopossível (Retenção de Páginas = Pinning) • Fixação de páginasenvolvidas com E/S namemória

  35. Memória Secundária (a) Paginação para uma área de troca estática (b) Páginas alocadas dinamicamente em disco

  36. Separação da Políticae do Mecanismo Tratamento de faltas de página com paginador externo

  37. Segmentação • Divisão do espaço de endereçamento em um número de partições com tamanhos distintos • Aproxima-se mais da visão do programador: um programa é uma coleção de segmentos de tamanho variável • Os compiladores e montadores criam automaticamente os segmentos que constituem o programa • Na carga do programa cada segmento recebe um número de segmento específico

  38. Segmentação (1) • Espaço de endereçamentounidimensional com tabelascrescentes • Uma tabelapodeatingiroutra

  39. Segmentação • A memória lógica é constituída por um conjunto de segmentos, cada um com um nome e um tamanho (na prática, os segmentos são identificados por números e não por nomes) • Páginas têm tamanho fixo, segmentação não. • Uma posição da memória lógica é referida por um par (s, d) • s é o número do segmento • d é o deslocamento (offset ) dentro do segmento

  40. Segmentação (2) Permite que cada tabela cresça ou encolha, independentemente

  41. Segmentação Subrotina Pilha Sqrt Array X Programa Principal Espaço de Endereçamento Lógico do Processo

  42. Segmentação • É necessário mapear cada endereço lógico do tipo (s, d) para o endereços da memória física correspondente • Para isso cada processo possui a sua tabela de segmentos • A tabela de segmentos pode ser colocada em registradores rápidos ou na memória principal. • Normalmente, é usado o esquema de memória associativa (na tabela associativa ficam os segmentos mais recentemente acessados e seus endereços)

  43. Tabela de Segmentos

  44. Segmentação • Pode-se associar atributos aos segmentos, possibilitando assim uma proteção ou compartilhamento destes segmentos • Bit de proteção associado a cada entrada da tabela de segmentos • A segmentação facilita o compartilhamento entre usuários

  45. Segmentação e Paginação • Espaço endereçamento • Paginação • Espaço de endereçamento lógico é um espaço único, contínuo, cujos endereços vão desde zero até MAX (onde MAX = tamanho do programa menos 1) • Segmentação • Espaço de endereçamento lógico é formado por um conjunto de segmentos. Cada segmento é um espaço contínuo, cujos endereços vão desde zero até MAX (onde MAX = tamanho do segmento menos 1)

  46. Segmentação e Paginação • Qual o melhor? • Discussão antiga, sem vencedores • Fragmentação • Paginação : apresenta fragmentação interna • Segmentação : apresenta fragmentação externa • Administração • Paginação é mais simples • Proteção (segurança) e compartilhamento • Segmentação é melhor, pois: • segmentos são unidades lógicas • páginas são mais misturadas (dados, código)

  47. Segmentação (3) Comparação entre paginação e segmentação

  48. Sistemas Combinados • Existem sistemas onde a paginação e a segmentação são usadas em conjunto, procurando tirar proveito de ambos os esquemas. • Segmentação paginada (mais comum) • Paginação segmentada (menos comum)

  49. Segmentação Paginada

  50. Paginação por demanda • Um programa pode ser executado com poucas de suas páginas na memória • Quando necessário, uma página é trazida do disco para memória e utilizada (demanda)

More Related