Was ist der Unterschied zwischen abgefragten und vektorisierten Interrupts? Wie werden sie verwendet, um mehrere Interrupts zu verarbeiten?


Antwort 1:

Beide Interrupts werden von einem Hardwaregerät verursacht, das über eine Interrupt-Anforderungsleitung einen Aufmerksamkeitsbedarf signalisiert. Wenn die Architektur richtig angeordnet ist, führt dies dazu, dass die CPU Vorgänge unterbricht und einen Interrupt-Anforderungsprozess aufruft, der sich damit befasst. Vektorgesteuerte Interrupts haben eine bestimmte Position (Vektor) im Speicheradressraum, die auf eine Routine verweist, die Interrupts von diesem Gerät verarbeiten kann. (Bei einigen Architekturen wird die Gerätenummer für eine spätere Abfrage per Software benachrichtigt, und für alle Geräte kann eine einzige Adresse verwendet werden.)

Auf Computern ohne E / A-Interrupts muss die Software jedes mögliche E / A-Gerät abfragen, um regelmäßig nach Dienstanforderungen zu suchen, um sicherzustellen, dass die Hardware in einer angemessenen Zeit als Dienst fungiert, und die Steuerung an die entsprechende Routine übergeben, wenn sie Anforderungen erkennt.

Es gibt keinen großen Unterschied, ob eine Unterbrechungsanforderung erkannt wird oder nicht. alles andere muss stattfinden; Der einzige Unterschied besteht darin, dass Hardware in der Regel viel schneller reagiert und weniger Prozessorleistung von der CPU beansprucht.


Antwort 2:

In einem Computer ist ein abgefragter Interrupt eine bestimmte Art von E / A-Interrupt, der dem Teil des Computers mit der E / A-Schnittstelle mitteilt, dass ein Gerät zum Lesen oder anderweitigen Verarbeiten bereit ist, jedoch nicht angibt, welches Gerät verwendet wird. Der Interrupt-Controller muss jedes Gerät abfragen (ein Signal senden), um zu bestimmen, welches die Anforderung gestellt hat.

Die Alternative zu einem abgefragten Interrupt ist ein vektorieller Interrupt, ein Interruptsignal, das die Identität des Geräts enthält, das das Interruptsignal sendet.

Quelle: Was ist ein Polled Interrupt? - Definition von WhatIs.com