segunda-feira, 16 de março de 2009

SO - Interrupções e Execeções.

Durante a execução de um programa alguma coisa pode acontecer ocasionando a intervenção do SO no programa em questão. Essa intervenção pode ser chamada de Interrupção ou Exceção, dependendo do evento que gerou tal intervenção.
Quando isso acontece o fluxo de execução do programa é desviado para uma rotina de tratamento, para pegar as instruções da interrupção ou da exceção.

Interrupção

Uma interrupção não pode ser prevista (ASSÍNCRONA) e é gerada pelo SO ou por algum dispositivo. Quando um dispositivo solicita a interrupção, a CPU para (sem acento, quem mais odeia a reforma ortográfica?) de fazer o que estava fazendo para, então, atender o dispositivo que pediu a interrupção e passa a executar outra coisa.


Exceção

As exceções, ao contrário das interrupções, é previsível (SÍNCRONA) e ocorrem sempre num programa em execução. Executando um programa com certos valores e isso gerar uma exceção, quando o programa for executado novamente, usando os mesmo valores, gerará novamente a mesma exceção.
A exceção pode ser tratada tanto pelo sistema quando pelo programador e tem por principal objetivo o não travamento do sistema. Exemplo de exceção? Aqui:

Imagine um algoritmo que efetua operações aritméticas básicas. Quando o usuário tentar dividir determinado número por 0 (zero), o que vai acontecer? Será gerada um exceção, pois divisão por zero não existe, oras.

0 comentários: