Recomendado, 2024

La Elección Del Editor

Diferencia entre interrupción y sondeo en OS

Tenemos muchos dispositivos externos conectados a la CPU como un mouse, teclado, escáner, impresora, etc. Estos dispositivos también necesitan atención de la CPU. Supongamos que una CPU está ocupada en mostrar un PDF y hace clic en el icono del reproductor multimedia de la ventana en el escritorio. Aunque la CPU no tiene idea de cuándo ocurrirá un evento como este, tiene que responder a tales entradas desde los dispositivos de E / S. Interrupción y sondeo son las dos formas de manejar los eventos generados por los dispositivos que pueden ocurrir en cualquier momento mientras la CPU está ocupada en la ejecución de otro proceso.

El sondeo y la interrupción permiten a la CPU detener lo que está haciendo actualmente y responder a la tarea más importante. El sondeo y la interrupción son diferentes entre sí en muchos aspectos. Pero el punto básico que distingue el Sondeo y la Interrupción es que, en el sondeo de la CPU, sigue revisando los dispositivos de E / S a intervalos regulares si necesita el servicio de la CPU, mientras que, en caso de interrupción, el dispositivo de E / S interrumpe la CPU y le dice a la CPU que necesita el servicio de la CPU. . He discutido algunas diferencias entre Interrupción y Sondeo en la tabla de comparación a continuación, por favor, eche un vistazo.

Gráfica comparativa

Bases para la comparaciónInterrumpirVotación
BASICEl dispositivo notifica a la CPU que necesita atención de la CPU.La CPU comprueba constantemente el estado del dispositivo si necesita atención de la CPU.
MecanismoUna interrupción es un mecanismo de hardware.El sondeo es un protocolo.
ServicioEl controlador de interrupciones da servicio al dispositivo.CPU atiende el dispositivo.
IndicaciónLa línea de solicitud de interrupción indica que el dispositivo necesita mantenimiento.El bit listo para Comand indica que el dispositivo necesita mantenimiento.
UPCLa CPU se altera solo cuando un dispositivo necesita mantenimiento, lo que ahorra ciclos de CPU.La CPU tiene que esperar y verificar si un dispositivo necesita servicio, lo que desperdicia muchos ciclos de CPU.
OcurrenciaUna interrupción puede ocurrir en cualquier momento.La CPU sondea los dispositivos a intervalos regulares.
EficienciaLa interrupción se vuelve ineficiente cuando los dispositivos continúan interrumpiendo la CPU repetidamente.
El sondeo se vuelve ineficiente cuando la CPU rara vez encuentra un dispositivo listo para el servicio.
EjemploDeje sonar el timbre y luego abra la puerta para ver quién ha venido.Constantemente sigue abriendo la puerta para ver si alguien ha venido.

Definición de Interrupción

Una interrupción es un mecanismo de hardware que permite a la CPU detectar que un dispositivo necesita su atención. La CPU tiene una línea de solicitud de interrupción de cable que es verificada por la CPU después de la ejecución de cada instrucción individual. Cuando la CPU detecta una señal de interrupción en la línea de solicitud de interrupción, la CPU detiene su tarea actualmente en ejecución y responde al envío de interrupción por el dispositivo de E / S pasando el control al controlador de interrupción . El controlador de interrupciones resuelve la interrupción dando servicio al dispositivo.

Aunque la CPU no sabe cuándo ocurriría una interrupción, ya que puede ocurrir en cualquier momento, tiene que responder a la interrupción siempre que ocurra.

Cuando el controlador de interrupciones termina de ejecutar la interrupción, la CPU reanuda la ejecución de la tarea que ha detenido para responder a la interrupción. El software, el hardware, el usuario, algún error en el programa, etc. también pueden generar una interrupción. La naturaleza de manejo de interrupciones de la CPU conduce a la multitarea, es decir, un usuario puede realizar varias tareas diferentes al mismo tiempo.

Si se envían más de una interrupción a la CPU, el controlador de interrupciones ayuda a administrar las interrupciones que están a la espera de ser procesadas. Cuando el controlador de interrupciones se activa por la recepción de una interrupción, prioriza las interrupciones que esperan ser procesadas por la CPU y las coloca en una cola para recibir servicio.

Definición de sondeo

Como hemos visto en interrupciones, la entrada del dispositivo de E / S puede llegar en cualquier momento solicitando a la CPU que la procese. El sondeo es un protocolo que notifica a la CPU que un dispositivo necesita su atención. A diferencia de en interrupción, donde el dispositivo le dice a la CPU que necesita procesamiento de la CPU, en el sondeo de la CPU sigue preguntando al dispositivo de E / S si necesita procesamiento de la CPU.

La CPU prueba continuamente todos y cada uno de los dispositivos conectados para detectar si algún dispositivo necesita atención de la CPU. Cada dispositivo tiene un bit de comando listo que indica el estado de ese dispositivo, es decir, si tiene algún comando para ser ejecutado por la CPU o no. Si el bit de comando se establece en 1, entonces tiene que ejecutar algún comando si el bit es 0, entonces no tiene comandos. La CPU tiene un bit de ocupado que indica el estado de la CPU si está ocupado o no. Si el bit de ocupado se establece en 1, entonces está ocupado en ejecutar el comando de algún dispositivo, de lo contrario es 0 .

Algoritmo de sondeo

  • Cuando un dispositivo tiene algún comando para ser ejecutado por la CPU, comprueba continuamente el poco ocupado de la CPU hasta que se borra (0).
  • Cuando el bit de ocupado se aclara, el dispositivo establece un bit de escritura en su registro de comando y escribe un byte en el registro de salida de datos.
  • Ahora el dispositivo establece (1) el bit listo para comando.
  • Cuando la CPU comprueba el bit de listo para comando de los dispositivos y encuentra que establece (1), establece (1) su bit de ocupado.
  • La CPU lee el registro de comando del dispositivo y ejecuta el comando del dispositivo.
  • Después de la ejecución del comando, la CPU borra (0) el bit de listo para comando, el bit de error del dispositivo para indicar la ejecución exitosa del comando del dispositivo y, además, borra (0) su bit de ocupado también para indicar que la CPU está libre para ejecutarse El comando de algún otro dispositivo.

Diferencias clave entre interrupción y sondeo en OS

  1. En caso de interrupción, el dispositivo notifica a la CPU que necesita mantenimiento, mientras que, en el sondeo, la CPU verifica repetidamente si un dispositivo necesita mantenimiento.
  2. La interrupción es un mecanismo de hardware ya que la CPU tiene un cable, una línea de solicitud de interrupción que indica que se ha producido una interrupción. Por otro lado, Polling es un protocolo que sigue revisando los bits de control para notificar si un dispositivo tiene algo que ejecutar.
  3. El manejador de interrupciones maneja las interrupciones generadas por los dispositivos. Por otro lado, en el sondeo, la CPU atiende al dispositivo cuando lo requiere.
  4. Las interrupciones son señalizadas por la línea de solicitud de interrupción . Sin embargo, el bit listo para comando indica que el dispositivo necesita servicio.
  5. En las interrupciones, la CPU solo se altera cuando cualquier dispositivo la interrumpe. Por otro lado, en el sondeo, la CPU desperdicia muchos ciclos de CPU al verificar repetidamente el bit listo para comandos de cada dispositivo.
  6. Una interrupción puede ocurrir en cualquier momento, mientras que la CPU sigue sondeando el dispositivo a intervalos regulares .
  7. El sondeo se vuelve ineficiente cuando la CPU sigue sondeando el dispositivo y rara vez encuentra algún dispositivo listo para el servicio. Por otro lado, las interrupciones se vuelven ineficientes cuando los dispositivos continúan interrumpiendo el procesamiento de la CPU repetidamente.

Conclusión:

Tanto Polling como Interrupts son eficientes para atender los dispositivos de E / S. Pero pueden volverse ineficientes en ciertas condiciones como se discutió anteriormente.

Top