Upload
internet
View
102
Download
0
Embed Size (px)
Citation preview
Hugo Henrique Cassettari
Orientador: Edson Toshimi Midorikawa
Trabalho de Mestrado, Janeiro de 2004Escola Politécnica da Universidade de São Paulo
Departamento de Engenharia de Computação e Sistemas Digitais
Análise da Localidade de Programas e Análise da Localidade de Programas e Desenvolvimento de Algoritmos Adaptativos para Desenvolvimento de Algoritmos Adaptativos para
Substituição de PáginasSubstituição de Páginas
• 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:Estrutura da Apresentação:
Memória Virtual com Paginação:Memória Virtual com Paginação:
4 KBPágina
Á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
Políticas de Substituição de Páginas:Políticas de Substituição de Páginas:
• LFU - FBR
• MFU
• VMIN
• WS
• PFF
• 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 SetWorking Set::
Localidade de Referências: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:Objetivo do Trabalho:
Análise da Localidade de Programas:Análise da Localidade de Programas:
• 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...
• 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:Conceitos:
• Recência:
• Distância (ou IRG / Inter-Reference Gap):
Exemplo:Exemplo:
A B C B D C E C D E C A D E B C A B E D1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
IRR = 4 IRR = 4
A B C B D C E C D E C A D E B C A B E D1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
IRG = 10 IRG = 4
• Exemplo:
• Fila LRU:
Recência no Modelo LRU:Recência no Modelo LRU:
A B C B D C E C D E C A D E B C A B E D1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
IRR = 4 IRR = 4
C E D B A F G H I J K L M N O P Q R S T0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Ferramentas para Análise de Localidade:Ferramentas para Análise de Localidade:
• 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.
TelaTraceTelaTrace – Mapa de Acessos: – Mapa de Acessos:
Mapa3DMapa3D – Mapa de Acessos: – Mapa de Acessos:
Mapa3DMapa3D – Mapa de Acessos: – Mapa de Acessos:
TraceExplorerTraceExplorer – Recência dos Acessos: – Recência dos Acessos:
TraceExplorerTraceExplorer – Variação da Recência: – Variação da Recência:
TraceExplorerTraceExplorer – Distância entre Acessos: – Distância entre Acessos:
• 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: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:Propostas Adaptativas:
Proposta LRU-WAR Proposta LRU-WAR (Working Area Restriction)(Working Area Restriction)::
• 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.
• 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 (Área de Trabalho (Working AreaWorking Area):):
Posições onde páginas foram acessadas desde a última falta de página
W
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Área de Trabalho (Working Area )
Página MRU Página LRU
...
Fila LRU representando a memória principal
• 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:Regiões da Fila LRU:
C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Região Protegida
Região Seqüencial Região LRU
L
Fila LRU M = 20
• Área de trabalho pequena o suficiente para indicar baixa reutilização de páginas.
Tendência Seqüencial:Tendência Seqüencial:
C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Região Protegida
Região Seqüencial Região LRU
L
Fila LRU M = 20
• Á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:Operação Seqüencial:
C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Região Protegida
Região Seqüencial Região LRU
L
Fila LRU M = 20
Estados de Execução Previstos:Estados de Execução Previstos:
Tendência Original (LRU) Maior que L LRU MTendência Seqüencial Menor ou igual a L LRU MOperação Seqüencial Menor ou igual a L e estável MRU-n W+1
Tamanho da Área de Trabalho
ALGORITMO LRU-WAR
Estado de execução Critério de Substituição
Ponto de Substituição (Posição na Fila LRU)
C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Região Protegida
Região Seqüencial Região LRU
L
Fila LRU M = 20
Pontos de Substituição do LRU-WAR:Pontos de Substituição do LRU-WAR:
W +1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
W LRU
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Exemplo de falta de página em operação seqüencial
L Área de Trabalho
Ponto de Substituição
Fila LRU M = 20
Exemplo de falta de página em tendência original (LRU)
L Área de Trabalho
Ponto de Substituição
Fila LRU M = 20
• Identificação e atualização dinâmica da área de trabalho:
Exemplo de Simulação:Exemplo de Simulação:
A B C D E F G H I J K L M N O P Q R S T1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Fila LRU M = 20
WA B C D E F G H I J K L M N O P Q R S T1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Fila LRU M = 20FALTA 1
WU B C E A D F G H I J K L M N O P Q R S1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Fila LRU M = 20
WU B C E A D F G H I J K L M N O P Q R S1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Fila LRU M = 20FALTA 2
WV B C E U A D F G H I J K L M N O P Q R1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Fila LRU M = 20
WV B C E U A D F G H I J K L M N O P Q R1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Fila LRU FALTA 3 M = 20
WX B E U V C A D F G H I J K L M N O P Q1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Fila LRU M = 20
WX B E U V C A D F G H I J K L M N O P Q1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Fila LRU FALTA 4 M = 20
WY X E V C B U A D F G H I J K L M N O P1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Fila LRU M = 20
WY X E V C B U A D F G H I J K L M N O P1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Fila LRU FALTA 5 M = 20
WZ X E Y V C B U A D F G H I J K L M N O1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Fila LRU M = 20
• Tempo de carência antes do início de uma operação seqüencial.
Mecanismo para Detecção de Erros:Mecanismo para Detecção de Erros:
W +1 +2 +3 +4 +5 +6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Área de Trabalho Páginas não substituídas pela
op. seqüencial devido ao
tempo de carência
Ponto de Substituição L
Fila LRU M = 20
• 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:Versões do Algoritmo LRU-WAR:
• Exemplo simplificado de arquivo de traces:
Programaexecutável
Geradorde traces
arquivo de traces
Simulador
desempenhodos algoritmos
resultados
Metodologia para Avaliação de Desempenho: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:Simulações Realizadas:
TOTAL 628 TOTAL 514 TOTAL 527
Acroread 95 2_Pools 99 Espresso 66CC1 71 CPP 24 GCC 90Compress 78 CS 28 Gnuplot 77Go 52 GLI 50 Grobner 56Netscape 51 Multi1 52 GS 110Perl 81 Multi2 56 Lindsay 103Photoshp 60 Multi3 74 P2C 25
Powerpnt 49 PS 61Vortex 42 Sprite 70
Winword 49
Número de Simulações
Pacote LIRS
Número de Simulações
Pacote VMTRACE
Pacote ETCH
Número de Simulações
Resultados / Pacote Lirs:Resultados / Pacote Lirs:
Análise Geral -5,29%
2_Pools 0,00% (. . .) 0,03% (100) 0,00%
CPP -33,89% (50) 0,24% (750) -2,88%
CS -75,57% (1300) 0,00% (1400) -36,40%
GLI -46,56% (1100) 0,00% (. . .) -20,24%
Multi1 -39,13% (1600) 0,00% (. . .) -5,25%
Multi2 -13,41% (2300) 0,70% (1300) -2,28%
Multi3 -8,88% (3500) 0,57% (4700) -1,66%
PS -44,62% (250) 0,00% (. . .) -20,49%
Sprite -2,46% (300) 6,95% (2300) 3,31%
Pacote Lirs -9,54%
-75,57% 6,95%
Lir
s
-75,57% 6,95%
ALGORITMO LRU-WAR: Diferença percentual no número de faltas de página em relação ao algoritmo LRU
Arquivos de Trace
Melhor Caso Pior CasoMédia
Diferença % (Mem.) Diferença % (Mem.)
Padrão de Acessos à Memória / Postgres:Padrão de Acessos à Memória / Postgres:
Gráfico de Desempenho / Postgres:Gráfico de Desempenho / Postgres:
PS.Lirs
3000
4000
5000
6000
7000
8000
9000
10000
50 150
250
350
450
550
650
750
850
950
1050
1150
1250
1350
1450
1550
1650
1750
1850
1950
2050
Tamanho da memória
Nú
mer
o d
e fa
ltas
de
pág
ina
Ótimo
LRU
EELRU
LIRS
LRU-WAR
LRU-WAR Online
LRU-WAR em Relação ao LRU / Postgres:LRU-WAR em Relação ao LRU / Postgres:
Diferenças Percentuais de Desempenho - PS.Lirs
-48%
-44%
-40%
-36%
-32%
-28%
-24%
-20%
-16%
-12%
-8%
-4%
0%
4%
50 250
450
650
850
1050
1250
1450
1650
1850
2050
Tamanho da memória
Dif
eren
ça %
(fa
ltas
de
pág
ina)
LRU
LRU-WAR
Resultados / Pacote Etch:Resultados / Pacote Etch:
Análise Geral -5,29%
Acroread -0,09% (180) 0,51% (400) 0,11%CC1 -0,76% (270) 1,83% (550) 0,28%Compress -75,11% (270) 0,02% (15) -10,34%Go 0,00% (. . .) 0,02% (15) 0,00%Netscape -0,12% (140) 0,74% (300) 0,08%
Perl -1,57% (100) 6,29% (4200) 2,03%Photoshp -1,20% (150) 5,14% (2600) 3,03%
Powerpnt -0,01% (20) 0,14% (100) 0,01%
Vortex -4,33% (3100) 0,49% (1600) -0,72%Winword -0,01% (140) 0,25% (540) 0,04%
Pacote Etch -0,55%
-75,57% 6,95%
Etc
h
-75,11% 6,29%
ALGORITMO LRU-WAR: Diferença percentual no número de faltas de página em relação ao algoritmo LRU
Arquivos de Trace
Melhor Caso Pior CasoMédia
Diferença % (Mem.) Diferença % (Mem.)
Padrão de Acessos à Memória / Vortex:Padrão de Acessos à Memória / Vortex:
Gráfico de Desempenho / Vortex:Gráfico de Desempenho / Vortex:
VORTEX.Etch
4000
9000
14000
19000
24000
29000
1500
1600
1700
1800
1900
2000
2100
2200
2300
2400
2500
2600
2700
2800
2900
3000
3100
3200
3300
3400
3500
3600
3700
Tamanho da memória
Nú
mer
o d
e fa
ltas
de
pág
ina
Ótimo
LRU
EELRU
LIRS
LRU-WAR
LRU-WAR Online
LRU-WAR em Relação ao LRU / Vortex:LRU-WAR em Relação ao LRU / Vortex:
Diferenças Percentuais de Desempenho - VORTEX.Etch
-6%
-4%
-2%
0%
2%
1500
1900
2300
2700
3100
3500
Tamanho da memória
Dif
eren
ça %
(fa
ltas
de
pág
ina)
LRU
LRU-WAR
Resultados / Pacote VMTrace:Resultados / Pacote VMTrace:
Análise Geral -5,29%
Espresso -7,94% (12) 0,02% (27) -0,28%
GCC -9,66% (185) 0,18% (245) -1,24%
Gnuplot -66,22% (7700) -0,53% (100) -33,38%
Grobner -11,75% (28) 1,02% (13) -3,78%
GS -5,61% (155) 5,09% (300) 1,34%
Lindsay -17,38% (. . .) 1,74% (130) -8,60%
P2C -0,72% (50) 0,04% (75) -0,14%
Pacote VMTrace -6,58%
-75,57% 6,95%
VM
Tra
ce
-66,22% 5,09%
ALGORITMO LRU-WAR: Diferença percentual no número de faltas de página em relação ao algoritmo LRU
Arquivos de Trace
Melhor Caso Pior CasoMédia
Diferença % (Mem.) Diferença % (Mem.)
Padrão de Acessos à Memória / GhostScript:Padrão de Acessos à Memória / GhostScript:
Gráfico de Desempenho / GhostScript:Gráfico de Desempenho / GhostScript:
GS.VMTrace
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
145
160
175
190
205
220
235
250
265
280
295
310
325
340
355
370
385
400
415
430
445
460
475
490
505
520
Tamanho da memória
Nú
mer
o d
e fa
ltas
de
pág
ina
Ótimo
LRU
EELRU
LIRS
LRU-WAR
LRU-WAR Online
LRU-WAR em Relação ao LRU / GhostScript:LRU-WAR em Relação ao LRU / GhostScript:
Diferenças Percentuais de Desempenho - GS.VMTrace
-6%
-3%
0%
3%
6%
145
165
185
205
225
245
265
285
305
325
345
365
385
405
425
445
465
485
505
Tamanho da memória
Dif
eren
ça %
(fa
ltas
de
pág
ina)
LRU
LRU-WAR
Grau de Otimalidade das Substituições:Grau de Otimalidade das Substituições:
Grau de Otimalidade das Substituições de Página LRU(GROBNER.VMTrace - memória de tamanho 28)
0
1000
2000
3000
4000
5000
6000
1 3 5 7 9 11 13 15 17 19 21 23 25 27
Índice Decrescente de Otimalidade
Qtd
. de
Pág
inas
Su
bst
itu
ídas
Grau de Otimalidade das Substituições de Página LRU-WAR(GROBNER.VMTrace - memória de tamanho 28)
0
1000
2000
3000
4000
5000
6000
1 3 5 7 9 11 13 15 17 19 21 23 25 27
Índice Decrescente de Otimalidade
Qtd
. de
Pág
inas
Su
bst
itu
ídas
Pontos Ótimos de Substituição:Pontos Ótimos de Substituição:
Pontos Ótimos de Substituição:Pontos Ótimos de Substituição:
Posição na Fila LRU dos Pontos Ótimos de Substituição(Simulação LRU - GROBNER.VMTrace - memória de tamanho 28)
0
500
1000
1500
2000
2500
3000
3500
4000
1 3 5 7 9 11 13 15 17 19 21 23 25 27
Posição na Fila LRU
Qu
anti
dad
e d
e P
on
tos
Óti
mo
s
• É 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: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: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:Trabalhos Futuros: