Interrupt is een signaal dat door hardware of software wordt uitgezonden wanneer een proces of een gebeurtenis onmiddellijke aandacht nodig heeft. Het waarschuwt de processor voor een proces met een hoge prioriteit dat een onderbreking van het huidige werkproces vereist. In I/O-apparaten is een van de buscontrolelijnen speciaal voor dit doel bestemd en wordt de Interrupt Service Routine (ISR) genoemd.
Wanneer een apparaat een interrupt oproept bij laten we zeggen proces i, voltooit de processor eerst de uitvoering van instructie i. Daarna laadt hij de Program Counter (PC) met het adres van de eerste instructie van de ISR. Alvorens de Program Counter te laden met het adres, wordt het adres van de onderbroken instructie verplaatst naar een tijdelijke locatie. Daarom kan de processor na het afhandelen van de interrupt verder gaan met proces i+1.
Terwijl de processor de interrupts afhandelt, moet hij het apparaat laten weten dat zijn verzoek is herkend, zodat het stopt met het zenden van het interrupt-aanvraagsignaal. Ook het opslaan van de registers, zodat het onderbroken proces in de toekomst kan worden hersteld, vergroot de vertraging tussen het moment dat een interrupt wordt ontvangen en het begin van de uitvoering van de ISR. Dit wordt Interrupt Lattency genoemd.
Hardware Interrupts:
In een hardware interrupt, zijn alle apparaten verbonden met de Interrupt Request Line. Een enkele aanvraag lijn wordt gebruikt voor alle n apparaten. Om een interrupt aan te vragen, sluit een apparaat de bijbehorende schakelaar. Wanneer een apparaat een interrupt aanvraagt, is de waarde van INTR de logische OF van de aanvragen van de afzonderlijke apparaten.
Opeenvolging van gebeurtenissen bij de afhandeling van een IRQ:
- Devices raise an IRQ.
- Processor onderbreekt het programma dat op dat moment wordt uitgevoerd.
- Device wordt geïnformeerd dat zijn aanvraag is herkend en het apparaat deactiveert het aanvraagsignaal.
- De gevraagde actie wordt uitgevoerd.
- Interrupt wordt ingeschakeld en het onderbroken programma wordt hervat.
Handling Multiple Devices:
Wanneer meer dan één device een interrupt-aanvraagsignaal afgeeft, dan is aanvullende informatie nodig om te beslissen welk device het eerst in aanmerking moet worden genomen. De volgende methoden worden gebruikt om te beslissen welk apparaat moet worden geselecteerd: Polling, Vectored Interrupts, en Interrupt Nesting. Deze worden hieronder uitgelegd.
- Polling:
Bij polling is het eerste apparaat dat wordt aangetroffen met een IRQ-bit ingesteld, het apparaat dat het eerst moet worden bediend. De juiste ISR wordt aangeroepen om hetzelfde te bedienen. Het is eenvoudig te implementeren, maar er gaat veel tijd verloren met het ondervragen van de IRQ bit van alle apparaten. - Vectored Interrupts:
In vectored interrupts, identificeert een apparaat dat een interrupt aanvraagt zichzelf direct door een speciale code naar de processor te sturen via de bus. Dit stelt de processor in staat het apparaat te identificeren dat de interrupt heeft gegenereerd. De speciale code kan het startadres van de ISR zijn of waar de ISR zich in het geheugen bevindt, en wordt de interrupt vector genoemd. - Interrupt Nesting:
In deze methode is het I/O apparaat georganiseerd in een prioriteiten structuur. Daarom wordt een onderbrekingsverzoek van een apparaat met een hogere prioriteit herkend, terwijl een verzoek van een apparaat met een lagere prioriteit niet wordt herkend. Om dit te implementeren wordt elk proces/apparaat (zelfs de processor). De processor accepteert alleen interrupts van apparaten/processen die een hogere prioriteit hebben dan hij.
De prioriteit van de processor is gecodeerd in een paar bits van PS (Process Status register). Deze kan worden gewijzigd door programma-instructies die in het PS schrijven. Processor is in supervised mode alleen tijdens het uitvoeren van OS routines. Hij schakelt over naar gebruikersmodus voordat hij toepassingsprogramma’s uitvoert.
Let op lezer! Stop nu niet met leren. Krijg grip op alle belangrijke CS Theorie concepten voor SDE interviews met de CS Theorie Cursus tegen een student-vriendelijke prijs en wordt de industrie ready.