Recomendado, 2024

Escolha Do Editor

Diferença entre interrupção e pesquisa no sistema operacional

Temos muitos dispositivos externos conectados à CPU, como mouse, teclado, scanner, impressora, etc. Esses dispositivos também precisam de atenção da CPU. Suponha que uma CPU esteja ocupada exibindo um PDF e você clique no ícone do media player da janela na área de trabalho. Embora a CPU não tenha idéia de quando um evento como esse ocorreria, ela precisa responder a essas entradas dos dispositivos de E / S. Interrupção e Pesquisa são as duas maneiras de manipular os eventos gerados pelos dispositivos que podem acontecer a qualquer momento enquanto a CPU está ocupada na execução de outro processo.

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çãoInterromperPolling
BasicO 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.
MecanismoUma interrupção é um mecanismo de hardware.Polling é um protocolo.
ManutençãoO manipulador de interrupções atende o dispositivo.CPU atende o dispositivo.
IndicaçãoA 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.
CPUA 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ênciaUma interrupção pode ocorrer a qualquer momento.A CPU pesquisa os dispositivos em intervalos regulares.
EficiênciaA 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.
ExemploDeixe 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Uma interrupção pode ocorrer a qualquer instante de tempo enquanto a CPU continua pesquisando o dispositivo em intervalos regulares .
  7. 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.

Top