520 likes | 653 Views
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
E N D
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
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:
Página 4 KB Área de Swap (Disco) Memória Principal Memória Virtual com Paginação:
Memória Virtual com Paginação: Problema da Substituição: Qual página deve ser retirada da memória?
ÓTIMO • FIFO • - Clock • LRU • - LRU-K e 2Q • MRU • NRU • LFU • - FBR • MFU • VMIN • WS • PFF Políticas de Substituição de Páginas:
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:
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:
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:
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:
Recência: • Distância (ou IRG / Inter-Reference Gap): Exemplo:
Exemplo: • Fila LRU: Recência no Modelo LRU:
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:
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:
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:
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):
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):
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:
Área de trabalho pequena o suficiente para indicar baixa reutilização de páginas. Tendência Seqüencial:
Á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:
Identificação e atualização dinâmica da área de trabalho: Exemplo de Simulação:
Tempo de carência antes do início de uma operação seqüencial. Mecanismo para Detecção de Erros:
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:
Exemplo simplificado de arquivo de traces: Metodologia para Avaliação de Desempenho:
1669 simulações com 26 programas, representados por traces que compõem 3 pacotes: Etch, Lirs e VMTrace. Simulações Realizadas:
É 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:
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:
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: