Nee, u kunt een IRQ (Interrupt Request-lijn) niet rechtstreeks delen tussen apparaten op nieuwere bussen zoals PCI en USB, op dezelfde manier als oudere ISA-bussen dat toestonden.
Dit is waarom:
* Moderne busarchitecturen: PCI en USB maken gebruik van interruptcontrollers en -mechanismen die fundamenteel verschillen van de gedeelde IRQ-lijnen van ISA. Elk PCI-apparaat krijgt bijvoorbeeld zijn eigen Message Signaled Interrupts (MSI) of MSI-X (meerdere MSI) toegewezen, wat in wezen virtuele interrupts zijn die zijn toegewezen aan specifieke geheugenlocaties. USB maakt gebruik van interrupt-eindpunten die worden beheerd door de USB-controller. Dit zijn geen direct gedeelde fysieke interruptlijnen.
* Routing onderbreken: De interruptcontroller van het besturingssysteem beheert de mapping tussen de fysieke interruptlijnen en de software-interrupts die toepassingen gebruiken. Deze mapping wordt dynamisch toegewezen en zorgvuldig beheerd om conflicten te voorkomen. Het delen van een enkele fysieke IRQ tussen twee apparaten zou leiden tot onvoorspelbare en onbetrouwbare interruptafhandeling.
* Apparaatstuurprogramma's: Apparaatstuurprogramma's voor PCI- en USB-apparaten zijn geschreven met dien verstande dat elk apparaat zijn eigen speciale interruptmechanisme heeft. Ze zouden niet verwachten dat ze een IRQ zouden delen met een ander apparaat.
Hoewel het concept van het 'delen' van een IRQ aantrekkelijk lijkt vanuit het perspectief van resource management, wegen de complexiteiten en potentiële conflicten zwaarder dan de voordelen. De moderne aanpak biedt een robuuster en betrouwbaarder interruptafhandelingssysteem, zelfs als het meer bronnen lijkt te gebruiken (hoewel de bronnen virtueel zijn en efficiënt worden beheerd). In plaats van te delen ontvangen apparaten speciale interruptmechanismen die het besturingssysteem effectief beheert. |