Qual é a diferença entre interrupção de hardware e software?

Qual é a diferença entre interrupção de hardware e software?

Vou esboçar meu entendimento de ambos. Pesquisei no Google, mas não tenho certeza sobre meu conhecimento.Por favor me corrija!

A interrupção de hardware é gerada pelo agendador de eventos do sistema operacional para reatribuir o tempo da CPU para outro processo. Isso é verdade?

A interrupção de software pode ser gerada a partir de um programa em execução que deseja, por exemplo, ler um arquivo, e para isso precisamos reatribuir a CPU para a chamada de sistema operacional apropriada. Isso é verdade?

Existe outro tipo de interrupção de software/hardware?

Responder1

As interrupções de hardware e software diferem principalmente na forma como são geradas: as interrupções de hardware são geradas pelo hardware, por exemplo, um temporizador, teclado, placa de rede, etc., enquanto as interrupções de software são acionadas por uma instrução especial de software (por exemplo, int 0x80). Há também uma diferença relacionada em sua função: os manipuladores de interrupção de hardware devem lidar com eventos de hardware (por exemplo, um pacote que chega em uma interface de rede), enquanto os manipuladores de software devem servir outro software, geralmente um aplicativo, que executou a instrução de interrupção. (por exemplo, para solicitar ao kernel o acesso a um arquivo em nome da aplicação).

A interrupção do temporizador é de fato usada pelo escalonador do sistema operacional para recuperar periodicamente o controle e executar diversas operações (por exemplo, contabilidade de recursos, trocas de contexto).

Gerar uma interrupção de software é uma forma de comunicação com o kernel e pode ser usada em algumas plataformas para invocar chamadas de sistema.

informação relacionada