1 / 51

Hugo Henrique Cassettari Orientador: Edson Toshimi Midorikawa

Análise da Localidade de Programas e Desenvolvimento de Algoritmos Adaptativos para Substituição de Páginas. Hugo Henrique Cassettari Orientador: Edson Toshimi Midorikawa Trabalho de Mestrado, Janeiro de 2004 Escola Politécnica da Universidade de São Paulo

mulan
Download Presentation

Hugo Henrique Cassettari Orientador: Edson Toshimi Midorikawa

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. Análise da Localidade de Programas e Desenvolvimento de Algoritmos Adaptativos para Substituição de Páginas Hugo Henrique Cassettari Orientador: Edson Toshimi Midorikawa Trabalho de Mestrado, Janeiro de 2004 Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Computação e Sistemas Digitais

  2. Algoritmos de substituição de páginas (revisão); • Localidade de referências; • Ferramentas desenvolvidas para análise de localidade; • Algoritmos adaptativos; • Proposta LRU-WAR; • Avaliação de desempenho. Estrutura da Apresentação:

  3. Página 4 KB Área de Swap (Disco) Memória Principal Memória Virtual com Paginação:

  4. Memória Virtual com Paginação: Problema da Substituição: Qual página deve ser retirada da memória?

  5. ÓTIMO • FIFO • - Clock • LRU • - LRU-K e 2Q • MRU • NRU • LFU • - FBR • MFU • VMIN • WS • PFF Políticas de Substituição de Páginas:

  6. Conjunto das páginas requeridas para o processamento de um programa num certo intervalo de tempo. • Concentração dos acessos realizados à memória em determinadas regiões do espaço de endereçamento utilizado pelo programa; • Temporal e/ou espacial. Working Set: Localidade de Referências:

  7. Buscar novos meios para melhorar o desempenho do sistema de memória, através de: • - Estudo e caracterização de localidade de referências; • - Pesquisa de algoritmos adaptativos para substituição de páginas (algoritmos que adaptam o seu comportamento em uma execução). Objetivo do Trabalho:

  8. Padrões de acesso à memória; • Localidades de referência temporais e/ou espaciais; • Distribuição dos acessos no espaço de endereçamento; • Freqüência de reutilização das páginas; • Interação entre páginas (acessos entrelaçados); • Entre outros dados... Análise da Localidade de Programas:

  9. Recência de Reutilização: - Corresponde à recência de reutilização de uma página de memória em relação à reutilização das demais páginas residentes; - É determinada empiricamente pelo número de páginas distintas referenciadas entre dois acessos consecutivos a uma mesma página (IRR / Inter-Reference Recency). • Distância (ou IRG / Inter-Reference Gap): • - Indica o número de acessos ocorridos (tempo virtual) entre duas referências consecutivas a uma mesma página. Conceitos:

  10. Recência: • Distância (ou IRG / Inter-Reference Gap): Exemplo:

  11. Exemplo: • Fila LRU: Recência no Modelo LRU:

  12. TelaTrace: Gráficos de acesso bidimensionais. • Mapa3D: Gráficos de acesso tridimensionais. • Trace Explorer: • Gráficos de recência dos acessos; • Gráficos de variação da recência dos acessos; • Histogramas de recência dos acessos; • Gráficos de distância entre acessos; • Relatórios estatísticos sobre os traces analisados. Ferramentas para Análise de Localidade:

  13. TelaTrace – Mapa de Acessos:

  14. Mapa3D – Mapa de Acessos:

  15. Mapa3D – Mapa de Acessos:

  16. TraceExplorer – Recência dos Acessos:

  17. TraceExplorer – Variação da Recência:

  18. TraceExplorer – Distância entre Acessos:

  19. Adaptam seu comportamento em uma execução; • Atuam de acordo com as características de acesso à memória detectadas; • Podem: • Modificar o tamanho da memória utilizada; • Modificar o critério de substituição de páginas; • Modificar os parâmetros associados ao critério vigente; • Modificar as suas próprias regras adaptativas. Algoritmos Adaptativos de Substituição:

  20. SEQ e EELRU: • Modelo LRU; • Identificação de acessos seqüenciais. • LIRS: Previsão de acesso baseada na última reutilização. • DEAR, AFC e UBM: Procuram reconhecer padrões. • LRFU: Considera a recência e a freqüência dos acessos. • ARC: Versão adaptativa do algoritmo 2Q. Propostas Adaptativas:

  21. Como o SEQ e o EELRU procura detectar padrões de acesso seqüenciais; • Utiliza LRU ou MRU-n; • Princípio: Analisar a proporção de faltas de página em relação ao número máximo de páginas referenciadas entre cada falta; • Verifica a reutilização das páginas carregadas no modelo LRU e compara com o número de faltas de página. Proposta LRU-WAR (Working Area Restriction):

  22. Porção inicial da fila LRU em que todas as páginas referenciadas entre duas faltas consecutivas se encontravam no momento do respectivo acesso. Área de Trabalho (Working Area):

  23. Parâmetro L=MIN[50,M/2]: delimita a região seqüencial; • Parâmetro C=5: delimita a região protegida. Regiões da Fila LRU:

  24. Área de trabalho pequena o suficiente para indicar baixa reutilização de páginas. Tendência Seqüencial:

  25. Área de trabalho pequena o suficiente para indicar baixa reutilização de páginas; • Número de faltas de página – desde o início da tendência – maior que o tamanho da área de trabalho. Operação Seqüencial:

  26. Estados de Execução Previstos:

  27. Pontos de Substituição do LRU-WAR:

  28. Identificação e atualização dinâmica da área de trabalho: Exemplo de Simulação:

  29. Tempo de carência antes do início de uma operação seqüencial. Mecanismo para Detecção de Erros:

  30. Offline: • Completa, mas teórica; • Atualiza a fila LRU após cada acesso à memória. • Online: • Aproximada, mas factível; • Atualiza a fila LRU somente após uma falta de página. Versões do Algoritmo LRU-WAR:

  31. Exemplo simplificado de arquivo de traces: Metodologia para Avaliação de Desempenho:

  32. 1669 simulações com 26 programas, representados por traces que compõem 3 pacotes: Etch, Lirs e VMTrace. Simulações Realizadas:

  33. Resultados / Pacote Lirs:

  34. Padrão de Acessos à Memória / Postgres:

  35. Gráfico de Desempenho / Postgres:

  36. LRU-WAR em Relação ao LRU / Postgres:

  37. Resultados / Pacote Etch:

  38. Padrão de Acessos à Memória / Vortex:

  39. Gráfico de Desempenho / Vortex:

  40. LRU-WAR em Relação ao LRU / Vortex:

  41. Resultados / Pacote VMTrace:

  42. Padrão de Acessos à Memória / GhostScript:

  43. Gráfico de Desempenho / GhostScript:

  44. LRU-WAR em Relação ao LRU / GhostScript:

  45. Grau de Otimalidade das Substituições:

  46. Pontos Ótimos de Substituição:

  47. Pontos Ótimos de Substituição:

  48. É possível reconhecer certos padrões de acesso à memória dinamicamente, somente observando as posições na fila LRU das páginas referenciadas; • O algoritmo LRU-WAR é uma proposta inédita e viável; • O algoritmo cumpre sua meta: é uma variação do LRU que alcança excelentes desempenhos quando padrões de acesso seqüenciais predominam em um programa; • Por outro lado, o algoritmo se mostra confiável: seu desempenho não foi significativamente pior que o do LRU original em nenhum caso analisado. Conclusões:

  49. Descrição compilada dos principais algoritmos de substituição de páginas, estáticos e adaptativos; • Desenvolvimento de ferramentas para análise de localidade e caracterização de programas: TelaTrace, Mapa3D e Trace Explorer; • Apresentação de um novo algoritmo adaptativo, o LRU-WAR, nas versões online e offline; • Avaliação de desempenho das principais propostas adaptativas, com a criação de simuladores de sistemas de memória e análise sobre os resultados obtidos. Principais Contribuições:

  50. Aperfeiçoamento do algoritmo LRU-WAR, utilizando técnicas de IA e/ou diretivas inseridas pelo compilador; • Tentativa de se chegar a um “meta-algoritmo”; • Gerência do particionamento dinâmico da memória entre os processos; • Implementação prática do novo sistema de gerenciamento de memória em um SO (Linux); • Estudos complementares (locality surfaces, experimentação com outros traces, etc.). Trabalhos Futuros:

More Related