Process aware interrupt scheduling and accounting

22
Process-Aware Interrupt Scheduling and Accounting Daniel Carvalho, Gustavo Carvalho, Luiz Romário e Manoel Neto

description

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

Transcript of Process aware interrupt scheduling and accounting

Page 1: Process aware interrupt scheduling and accounting

Process-Aware Interrupt Scheduling and

AccountingDaniel Carvalho, Gustavo Carvalho, Luiz

Romário e Manoel Neto

Page 2: Process aware interrupt scheduling and accounting

Tratamento de interrupções geral

Page 3: Process aware interrupt scheduling and accounting

Process-Aware framework

Page 4: Process aware interrupt scheduling and accounting

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

Page 5: Process aware interrupt scheduling and accounting

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)

Page 6: Process aware interrupt scheduling and accounting

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

Page 7: Process aware interrupt scheduling and accounting

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.

Page 8: Process aware interrupt scheduling and accounting

Algoritmo de Compensação (3)

Page 9: Process aware interrupt scheduling and accounting

Algoritmo de Compensação (4)

Exemplo:

Page 10: Process aware interrupt scheduling and accounting

Algoritmo de Escalonamento de Interrupções (1)

● Encontrar os candidatos

● Prever o processo associado com a interrupção

● Escalonar a metade inferior

Page 11: Process aware interrupt scheduling and accounting

Algoritmo de Escalonamento de Interrupções (2)

Page 12: Process aware interrupt scheduling and accounting

Implementação

● Modificações no kernel Linux;

● Focado em recebimento de pacotes de rede;

● softirqs representa o bottom-half;

Page 13: Process aware interrupt scheduling and accounting
Page 14: Process aware interrupt scheduling and accounting

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;

Page 15: Process aware interrupt scheduling and accounting

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;

Page 16: Process aware interrupt scheduling and accounting

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;

Page 17: Process aware interrupt scheduling and accounting

Resultados(Accounting Algorithm Only)

Page 18: Process aware interrupt scheduling and accounting

Resultados(Accounting Algorithm Only)

Page 19: Process aware interrupt scheduling and accounting

Resultados(Accounting and Interrupt Scheduling Algorithm)

Page 20: Process aware interrupt scheduling and accounting

Resultados(Accounting and Interrupt Scheduling Algorithm)

(Rajadas)

Page 21: Process aware interrupt scheduling and accounting

Resultados(Accounting and Interrupt Scheduling Algorithm)

Page 22: Process aware interrupt scheduling and accounting

Referência

Zhang, Yuting, and Richard West. "Process-Aware Interrupt Scheduling and Accounting." RTSS. Vol. 6. 2006.