Determinación de la fuente que genera la interrupción

La primera alternativa que se consideró fue asignar una línea (un bit) para cada interrupción pero esto suponía un gran costo en cuanto a la relación nº de dispositivos y nº de bits usados y a menudo fijaba el límite de dispositivos que se podían conectar. Por tanto se pensó con posterioridad que en cada patilla de interrupción deberían poder conectarse más de un dispositivo pero entonces tendríamos que imponer una metodología que nos permitiese identificar de forma unívoca de qué dispositivo se trata. Para ello se han dado varias directrices que a continuación vamos a analizar de manera más detallada:
  • "Polling": Se trata de que la CPU comprueba de manera sistemática todos los dispositivos de manera que "busca" cuál de ellos fue el que solicitó la interrupción. Esto tiene una ventaja y es que es barato a nivel de coste hardware ya que el "polling" se implementa en software, no obstante tiene otras desventajas que no podemos olvidar y es que suele ser lento porque tiene que comprobar en serie todos los dispositivos y establece una prioridad en los dispositivos (el orden de sondeo) y por tanto puede provocar inanición.
  • Interrupciones vectorizadas: Este concepto fue ya tratado en el apartado anterior y como ventajas podemos destacar que suele ser rápido pero implica un alto coste en el hardware.
  • Hardware paralelo: Se utiliza un registro de interrupción cuyos bits se controlan de forma independiente por las señales de petición de interrupción PIi de cada periférico. Según la posición de cada bit en el registro, se establece la prioridad.

Está claro que necesitamos un mecanismo para priorizar las interrupciones y tratar primero las más "urgentes". En el siguiente apartado identificaremos los distintos métodos para establecer sistemas de prioridad y explicaremos de manera más extensa cada uno de ellos.