Diferença Entre Interrupção E Armadilha

Diferença Entre Interrupção E Armadilha
Diferença Entre Interrupção E Armadilha

Vídeo: Diferença Entre Interrupção E Armadilha

Vídeo: Diferença Entre Interrupção E Armadilha
Vídeo: Armadilhas das interrupções “inocentes”. || Prof Deisi. 2024, Março
Anonim

Interromper vs Trap

Em qualquer computador, durante a execução normal de um programa, podem ocorrer eventos que podem fazer com que a CPU pare temporariamente. Eventos como esses são chamados de interrupções. As interrupções podem ser causadas por falhas de software ou hardware. As interrupções de hardware são chamadas (simplesmente) de interrupções, enquanto as interrupções de software são chamadas de exceções ou armadilhas. Uma Exceção é uma interrupção de software gerada automaticamente, enquanto uma Trap é uma interrupção invocada por software iniciada pelo programador. Uma vez que uma interrupção (software ou hardware) é gerada, o controle é transferido para uma sub-rotina especial chamada ISR (Interrupt Service Routine) que pode lidar com as condições que são geradas pela interrupção.

O que é uma interrupção?

O termo interrupção geralmente é reservado para interrupções de hardware. Eles são interrupções de controle de programa causadas por eventos de hardware externos. Aqui, externo significa externo à CPU. As interrupções de hardware geralmente vêm de muitas fontes diferentes, como chip de temporizador, dispositivos periféricos (teclados, mouse, etc.), portas de E / S (serial, paralela, etc.), drives de disco, relógio CMOS, placas de expansão (placa de som, vídeo cartão, etc). Isso significa que as interrupções de hardware quase nunca ocorrem devido a algum evento relacionado ao programa em execução. Por exemplo, um evento como o pressionamento de uma tecla no teclado pelo usuário ou um temporizador de hardware interno pode gerar esse tipo de interrupção e informar à CPU que um determinado dispositivo precisa de alguma atenção. Em uma situação como essa, a CPU irá parar tudo o que estava fazendo (ou seja, pausa o programa atual),fornece o serviço exigido pelo dispositivo e retornará ao programa normal. Quando ocorrem interrupções de hardware e a CPU inicia o ISR, outras interrupções de hardware são desabilitadas (por exemplo, em máquinas 80 × 86). Se você precisar que outras interrupções de hardware ocorram enquanto o ISR está em execução, você precisa fazer isso explicitamente, limpando o sinalizador de interrupção (com instrução sti). Em máquinas 80 × 86, limpar o sinalizador de interrupção afetará apenas as interrupções de hardware.limpar o sinalizador de interrupção afetará apenas as interrupções de hardware.limpar o sinalizador de interrupção afetará apenas as interrupções de hardware.

O que é uma armadilha?

Uma armadilha pode ser identificada como uma transferência de controle, que é iniciada pelo programador. O termo Trap é usado alternadamente com o termo Exceção (que é uma interrupção de software que ocorre automaticamente). Mas alguns podem argumentar que uma armadilha é simplesmente uma chamada de sub-rotina especial. Portanto, eles se enquadram na categoria de interrupções invocadas por software. Por exemplo, em máquinas 80 × 86, um programador pode usar a instrução int para iniciar uma armadilha. Como um trap é sempre incondicional, o controle sempre será transferido para a sub-rotina associada ao trap. A instrução exata, que invoca a rotina para manipular a armadilha, é facilmente identificada porque uma instrução explícita é usada para especificar uma armadilha.

Qual é a diferença entre Interrupt e Trap?

As interrupções são interrupções de hardware, enquanto as armadilhas são interrupções invocadas por software. Ocorrências de interrupções de hardware geralmente desabilitam outras interrupções de hardware, mas isso não é verdade para traps. Se você precisar proibir interrupções de hardware até que uma armadilha seja servida, você precisa limpar explicitamente o sinalizador de interrupção. E geralmente o sinalizador de interrupção no computador afeta as interrupções (hardware) em vez de armadilhas. Isso significa que limpar este sinalizador não evitará armadilhas. Ao contrário dos traps, as interrupções devem preservar o estado anterior da CPU.

Recomendado: