Process aware interrupt scheduling and accounting

187 visualizações

Publicada em

Apresentação sobre o artigo "Process-Aware Interrupt Scheduling and Accounting" de Zhang, Yuting e Richard West.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
187
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Process aware interrupt scheduling and accounting

  1. 1. Process-Aware Interrupt Scheduling and Accounting Daniel Carvalho, Gustavo Carvalho, Luiz Romário e Manoel Neto
  2. 2. Tratamento de interrupções geral
  3. 3. Process-Aware framework
  4. 4. Serviços de Interrupção e Algoritmos de Contabilidade ● Algoritmo de Contabilidade de Interrupções ○ Algoritmo de compensação baseado no tempo usado nas interrupções ● Algoritmo de Escalonamento de Interrupções ○ Escalonamento baseado na prioridade do processo ativo em relação ao processo que requeriu interrupção
  5. 5. Visão geral do processo de contabilidade ● Temporizador de Interrupções ○ Um tick de clock está entre 1 - 10ms no Linux x86 ● Tempo de execução de um I/O ○ Geralmente menor que 1 tick de clock ○ Para contabilizar corretamente o tempo de execução, é necessário utilizar instruções que verifiquem o temporizador em cilcos de CPU (rdtsc no Linux x86)
  6. 6. Algoritmo de Compensação (1) ● Medir o tempo de execução de uma bottom half ● Medir o número total de interrupções processadas e o número de interrupções em nome de cada processo ● Ajuste do tempo de sistema cobrado para cada processo
  7. 7. Algoritmo de Compensação (2) ● t - tempo (clock do sistema) ● N(t) - número de interrupções cujo tempo total de execução é um tick de clock ● m(t) - número de interrupções processadas no último tick de clock ● xk (t) - número de interrupções não contabilizadas ao processo Pk .
  8. 8. Algoritmo de Compensação (3)
  9. 9. Algoritmo de Compensação (4) Exemplo:
  10. 10. Algoritmo de Escalonamento de Interrupções (1) ● Encontrar os candidatos ● Prever o processo associado com a interrupção ● Escalonar a metade inferior
  11. 11. Algoritmo de Escalonamento de Interrupções (2)
  12. 12. Implementação ● Modificações no kernel Linux; ● Focado em recebimento de pacotes de rede; ● softirqs representa o bottom-half;
  13. 13. Implementação do interrupt accounting algorithm ● Tempo de execução dos bottom-halves são medidos em cada execução; ● Quanto o socket apropriado é encontrado pro pacote, o processo correspondente é conhecido; ● Calcula-se o tempo gasto no bottom-half e recalcula o timeslice dos processos de acordo;
  14. 14. Implementação do algoritmo de escalonamento de interrupções ● Implementado na função do_softirq(); ● Antes do net_rx_action(), checa-se os possíveis softirqs, comparando as prioridades dos seus processos correspondentes com a do processo atual; ● Executa imediatamente se for mais prioritário ou aguarda momento apropriado caso contrário;
  15. 15. Experimentos ● Um processo UDP-server recebendo pacotes rodando concorrentemente com outro processo CPU-bound em uma máquina; ● Outro processo UDP-client que envia pacotes frequentemente em outra máquina; ● Comparação usando kernel Linux-2.6.14 e sua versão modificada com algoritmos apresentados;
  16. 16. Resultados (Accounting Algorithm Only)
  17. 17. Resultados (Accounting Algorithm Only)
  18. 18. Resultados (Accounting and Interrupt Scheduling Algorithm)
  19. 19. Resultados (Accounting and Interrupt Scheduling Algorithm) (Rajadas)
  20. 20. Resultados (Accounting and Interrupt Scheduling Algorithm)
  21. 21. Referência Zhang, Yuting, and Richard West. "Process-Aware Interrupt Scheduling and Accounting." RTSS. Vol. 6. 2006.

×