As interrupções de hardware e software diferem principalmente pela forma como são geradas: as interrupções de hardware são geradas por hardware, por ex. um temporizador, teclado, placa de rede, etc., enquanto as interrupções de software são acionadas por uma instrução de software especial (por exemplo, int 0x80
). Há também uma diferença relacionada em seu papel: manipuladores de interrupções de hardware devem manipular eventos de hardware (por exemplo, um pacote chegando em uma interface de rede) enquanto manipuladores de software devem servir outro software, geralmente um aplicativo, que executou a instrução de interrupção (por exemplo, para solicitar que o kernel acesse um arquivo em nome do aplicativo).
A interrupção do temporizador é de fato usada pelo agendador do sistema operacional para recuperar periodicamente o controle e realizar várias operações (por exemplo, contabilidade de recursos, alternância de contexto).
A geração de uma interrupção de software é uma maneira de se comunicar com o kernel e pode ser usada em algumas plataformas para invocar chamadas do sistema.