Interrupção

Uma interrupção é um sinal de um dispositivo ligado a um computador ou de um programa dentro do computador que requer que o sistema operacional pare e descubra o que fazer a seguir. Quase todos os computadores pessoais (ou maiores) de hoje em dia são interrupt-driven - ou seja, iniciam a lista de instruções do computador em um programa (talvez uma aplicação como um processador de texto) e continuam a executar as instruções até que (A) não possam ir mais longe ou (B) um sinal de interrupção seja detectado. Após o sinal de interrupção ser detectado, o computador ou retoma a execução do programa actual ou começa a executar outro programa.

Basicamente, um único computador pode executar apenas uma instrução de computador de cada vez. Mas, como pode ser interrompido, ele pode se revezar em quais programas ou conjuntos de instruções ele executa. Isto é conhecido como multitarefa. Permite ao usuário fazer uma série de coisas diferentes ao mesmo tempo. O computador simplesmente se reveza na gestão dos programas que o usuário inicia. É claro que o computador funciona a velocidades que fazem parecer que todas as tarefas do utilizador estão a ser executadas ao mesmo tempo. (O sistema operacional do computador é bom em usar pequenas pausas nas operações e o usuário pensa tempo para trabalhar em outros programas.)

Um sistema operacional normalmente tem algum código que é chamado de manipulador de interrupções. O manipulador de interrupções prioriza as interrupções e as salva em uma fila se mais de uma estiver esperando para ser manipulada. O sistema operacional tem outro pequeno programa, às vezes chamado de agendador, que calcula qual programa dar controle ao próximo.

Em geral, há interrupções de hardware e interrupções de software. Uma interrupção de hardware ocorre, por exemplo, quando uma operação de E/S é concluída, como a leitura de alguns dados para o computador a partir de uma unidade de fita. Uma interrupção de software ocorre quando um programa aplicativo termina ou solicita determinados serviços do sistema operacional. Em um computador pessoal, uma solicitação de interrupção de hardware (IRQ) tem um valor que o associa a um determinado dispositivo.