Polling e Interrupt permitem que a CPU pare o que está fazendo atualmente e responda à tarefa mais importante. Polling e Interrupção são diferentes entre si em muitos aspectos. Mas o ponto básico que distingue Polling e Interrupção é que, na pesquisa, a CPU continua verificando dispositivos de E / S em intervalos regulares, se precisa de serviço de CPU, enquanto em interrupção, o dispositivo de E / S interrompe a CPU e diz à CPU que precisa de serviço de CPU . Eu discuti algumas diferenças entre Interrupção e Busca no quadro de comparação abaixo, por favor dê uma olhada.
Gráfico de comparação
Base para Comparação | Interromper | Polling |
---|---|---|
Basic | O dispositivo notifica a CPU de que precisa de atenção da CPU. | A CPU verifica constantemente o status do dispositivo, quer precise de atenção da CPU. |
Mecanismo | Uma interrupção é um mecanismo de hardware. | Polling é um protocolo. |
Manutenção | O manipulador de interrupções atende o dispositivo. | CPU atende o dispositivo. |
Indicação | A linha de solicitação de interrupção indica que o dispositivo precisa de manutenção. | Um bit pronto para o comando indica que o dispositivo precisa de manutenção. |
CPU | A CPU é afetada apenas quando um dispositivo precisa de manutenção, o que economiza ciclos da CPU. | A CPU precisa esperar e verificar se um dispositivo precisa de manutenção, o que desperdiça muitos ciclos de CPU. |
Ocorrência | Uma interrupção pode ocorrer a qualquer momento. | A CPU pesquisa os dispositivos em intervalos regulares. |
Eficiência | A interrupção se torna ineficiente quando os dispositivos continuam interrompendo a CPU repetidamente. | A pesquisa torna-se ineficiente quando a CPU raramente encontra um dispositivo pronto para o serviço. |
Exemplo | Deixe a campainha tocar e abra a porta para verificar quem veio. | Constantemente, continue abrindo a porta para verificar se alguém chegou. |
Definição de Interrupção
Uma interrupção é um mecanismo de hardware que permite à CPU detectar que um dispositivo precisa de atenção. A CPU tem uma linha de solicitação de interrupção de fio que é verificada pela CPU após a execução de cada instrução. Quando a CPU detecta um sinal de interrupção na linha de solicitação de interrupção, a CPU pára sua tarefa atualmente em execução e responde ao envio de interrupção pelo dispositivo de E / S passando o controle para interromper o manipulador . O manipulador de interrupção resolve a interrupção executando o serviço no dispositivo.
Embora a CPU não esteja ciente de quando uma interrupção ocorreria, pois pode ocorrer a qualquer momento, mas deve responder à interrupção sempre que ocorrer.
Quando o manipulador de interrupção termina a execução da interrupção, a CPU retoma a execução da tarefa que foi interrompida para responder à interrupção. Software, hardware, usuário, algum erro no programa, etc. também podem gerar uma interrupção. Interrompe a natureza de manipulação da CPU leva a multitarefa, ou seja, um usuário pode executar várias tarefas diferentes ao mesmo tempo.
Se mais de uma interrupção for enviada à CPU, o manipulador de interrupção ajudará no gerenciamento das interrupções que estão aguardando para serem processadas. Como o manipulador de interrupções é acionado pela recepção de uma interrupção, ele prioriza as interrupções que aguardam para serem processadas pela CPU e as organiza em uma fila para serem atendidas.
Definição de Polling
Como vimos nas interrupções, a entrada do dispositivo de E / S pode chegar a qualquer momento solicitando que a CPU o processe. Polling é um protocolo que notifica a CPU de que um dispositivo precisa de atenção. Ao contrário da interrupção, quando o dispositivo diz à CPU que precisa de processamento da CPU, na pesquisa, a CPU pergunta ao dispositivo de E / S se ele precisa de processamento da CPU.
A CPU testa continuamente todos os dispositivos conectados a ela para detectar se algum dispositivo precisa de atenção da CPU. Cada dispositivo tem um bit pronto para o comando que indica o status daquele dispositivo, isto é, se ele tem algum comando a ser executado pela CPU ou não. Se o bit de comando for definido como 1, ele terá algum comando para ser executado, se o bit for 0 e não tiver comandos. A CPU tem um bit ocupado que indica o status da CPU, esteja ela ocupada ou não. Se o bit de ocupado estiver definido como 1, ele estará ocupado executando o comando de algum dispositivo, senão será 0 .
Algoritmo para pesquisa
- Quando um dispositivo tem algum comando para ser executado pela CPU, verifica continuamente o bit ocupado da CPU até que fique claro (0).
- À medida que o bit ocupado fica claro, o dispositivo define o bit de gravação em seu registro de comando e grava um byte no registro de saída de dados.
- Agora o dispositivo define (1) o bit pronto para o comando.
- Quando a CPU verifica o bit pronto para o uso do dispositivo e o encontra definido (1), ele define (1) seu bit de ocupado.
- A CPU então lê o registro de comando do dispositivo e executa o comando do dispositivo.
- Após a execução do comando, a CPU limpa (0) o bit de comando pronto, bit de erro do dispositivo para indicar a execução bem-sucedida do comando do dispositivo e limpa (0) o bit de ocupado também para indicar que a CPU está livre para executar o comando de algum outro dispositivo.
Principais diferenças entre interrupção e pesquisa no sistema operacional
- Ininterruptamente, o dispositivo notifica a CPU de que precisa de manutenção, enquanto, na pesquisa, a CPU verifica repetidamente se um dispositivo precisa de manutenção.
- A interrupção é um mecanismo de hardware , pois a CPU possui uma linha de solicitação de interrupção que sinaliza que a interrupção ocorreu. Por outro lado, o Polling é um protocolo que continua verificando os bits de controle para notificar se um dispositivo tem algo para executar.
- O manipulador de interrupção manipula as interrupções geradas pelos dispositivos. Por outro lado, na pesquisa, a CPU atende ao dispositivo quando necessário.
- Interrupções são sinalizadas pela linha de solicitação de interrupção . No entanto, o bit pronto para o comando indica que o dispositivo precisa de manutenção.
- Em interrupções, a CPU só é perturbada quando qualquer dispositivo a interrompe. Por outro lado, na pesquisa, a CPU desperdiça muitos ciclos de CPU verificando repetidamente o bit de comando pronto de cada dispositivo.
- Uma interrupção pode ocorrer a qualquer instante de tempo enquanto a CPU continua pesquisando o dispositivo em intervalos regulares .
- A pesquisa torna-se ineficiente quando a CPU continua pesquisando o dispositivo e raramente encontra qualquer dispositivo pronto para manutenção. Por outro lado, as interrupções tornam-se ineficientes quando os dispositivos continuam interrompendo o processamento da CPU repetidamente.
Conclusão:
Tanto Polling quanto Interrupts são eficientes em atender os dispositivos de E / S. Mas eles podem se tornar ineficientes na condição certa, como discutido acima.