Gabarito B
Interrupção X Exceção
Interrupção gerada por evento síncrono e Exceção gerada por evento assíncrono.
Evento síncrono – Resultado direto da execução do programa corrente e são previsíveis.
Evento assíncrono – Ocorre independentemente da execução do programa corrente e são imprevisíveis.
Interrupções
Tornou possível a implementação da concorrência nos sistemas multiprogramáveis.
Eventos que causam intervenção no Sistema Operacional durante a execução de programas.
Gerados pelo próprio Sistema Operacional ou por Hardware.
O sistema é desviado para uma rotina especial de tratamento.
Vetor de Interrupção – Relação de todas as rotinas de tratamento das interrupções.
Mecanismo de Interrupção – Procedimento para detectar a interrupção, salvar o contexto do programa e desviar para a rotina de tratamento. Na maioria das vezes implementados pelos projetistas e realizados pelo harware.
Mascaráveis (podem ser desabilitadas) X Não-Mascaráveis (tratamento obrigatório).
As interrupções possuem prioridades de execução.
Controlador de pedidos de interrupção – avalia as interrupções geradas e suas prioridades de atendimento.
Exceção
Resultado direto da execução de uma instrução do próprio programa (ex: divisão por zero, overflow).
Muitas vezes pode ser escrita pelo próprio programador, sendo possível evitar que um programa seja encerrado no caso de alguma exceção ocorrer.
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
b-
Modern architectures are interrupt driven. This means that if the CPU requests data from a disk, for example, it does not need to busy-wait until the read is over; it can issue the request (to the I/O device) and continue with some other task. When the read is over, the CPU can be interrupted (by a hardware in this case, which sends interrupt request to PIC) and presented with the read. For interrupts, a program called an interrupt handler is installed, and it is the interrupt handler that handles the interrupt from the disk.
When an interrupt occurs, the hardware automatically switches a part of the context (at least enough to allow the handler to return to the interrupted code). The handler may save additional context, depending on details of the particular hardware and software designs. Often only a minimal part of the context is changed in order to minimize the amount of time spent handling the interrupt.
https://en.wikipedia.org/wiki/Context_switch