latência de interrupção - Interrupt latency

Em computação, latência de interrupção é o tempo que decorre a partir de quando uma interrupção é gerada quando a fonte da interrupção é atendido. Para muitos sistemas operacionais, dispositivos são servidos logo que o dispositivo manipulador de interrupção é executado. Latência de interrupção pode ser afectada por microprocessador de criação, os controladores de interrupções , interromper mascaramento , e o sistema operativo do (OS) interromper a manipulação de métodos.

fundo

Geralmente, há um compromisso entre a latência de interrupção, o rendimento , e a utilização do processador. Muitas das técnicas de CPU e OS design que melhoram a interromper a latência vai diminuir o rendimento e aumentar a utilização do processador. Técnicas que aumentam a taxa de transferência pode aumentar a latência de interrupção e aumentar a utilização do processador. Por último, tentando reduzir a utilização do processador podem aumentar a latência de interrupção e diminuir o rendimento.

Latência mínima interrupção é em grande parte determinada pela controlador de interrupção do circuito e sua configuração. Eles também podem afetar o jitter na latência de interrupção, o que pode afetar drasticamente o tempo real de escalonabilidade do sistema. A Intel APIC Architecture é bem conhecida por produzir uma enorme quantidade de jitter latência de interrupção.

Latência máxima de interrupção é em grande parte determinada pelos métodos de um sistema operacional utiliza para tratamento de interrupções. Por exemplo, a maioria dos processadores de permitir que os programas para desativar interrupções, adiando a execução de manipuladores de interrupção, a fim de proteger as seções críticas do código. Durante a execução de um troço tão crítico, todos manipuladores de interrupção que não pode executar com segurança dentro de uma seção crítica são bloqueados (eles salvar a quantidade mínima de informações necessárias para reiniciar o manipulador de interrupção depois de todas as seções críticas ter saído). Portanto, a latência de interrupção para uma interrupção bloqueado é prorrogado até ao final da seção crítica, além de quaisquer interrupções com igual e maior prioridade que chegaram enquanto o bloco estava no local.

Muitos sistemas de computador exigem latências de interrupção baixos, especialmente de sistemas embarcados que precisam controlar máquinas em tempo real. Às vezes, esses sistemas utilizam um sistema operacional de tempo real (RTOS). Um RTOS faz a promessa de que não mais do que um montante máximo especificado de tempo vai passar entre as execuções de sub-rotinas . A fim de fazer isso, o RTOS também deve garantir que a latência de interrupção nunca exceder um máximo pré-definido.

considerações

Existem muitos métodos que o hardware pode usar para aumentar a latência de interrupção que pode ser tolerada. Estes incluem tampões, e controlo de fluxo . Por exemplo, a maioria das placas de rede de transmissão e recepção implementar buffers de anel , taxa de interrupção limitante, e controle de fluxo de hardware. Tampões permitir que os dados a ser armazenado até que ele pode ser transferido, e controlo de fluxo permite que a placa de rede para interromper as comunicações sem ter que descartar dados se a memória tampão está cheia.

Hardware moderno também implementa taxa de interrupção limitante. Isso ajuda a evitar tempestades de interrupção ou bloqueio ao vivo por ter o hardware esperar uma quantidade mínima de tempo programável entre cada interrupção que gera. Taxa de interrupção limitando reduz a quantidade de tempo gasto manutenção interrupções, permitindo que o processador para passar mais tempo fazendo trabalho útil. Superior a este tempo resulta em um erro macio (recuperável) ou disco (não-recuperável).

Veja também