YeXo - een kernel programmeren

16 mei 2006

Interrupts, wat zijn het en hoe ze te gebruiken?

Wat is een interrupt?

Een interrupt is een gebeurtenis die de uitvoering van instructies onderbreekt. Een interrupt kan op verschillende manieren plaatsvinden, door software maar ook door hardware. Een hardware-interrupt komt bijvoorbeeld voor als je een toets indrukt op je toetsenbord. Een software-interrupt is een speciale instructie die door een programma wordt uitgevoerd om de kernel aan te roepen, bijvoorbeeld als de applicatie meer heap-geheugen nodig heeft. Ook wordt er door de processor een interrupt gecreeerd als er een fout optreed, bevoorbeeld bij een deling door 0.

Hoe kun je interrupts gebruiken?

Als er een fout (exception) optreed in de processor wordt er een interrupt aangeroepen. De interrupt die intel voor fouten heeft gereserveerd lopen van 0 t/m 31. De zelf te gebruiken interrupts lopen van 32 t/m 255. Voordat je hier iets mee kunt moet je eerst aan de processor vertellen welke functie aangeroepen moet worden als een interrupt optreedt. Dit kan door middel van een idt. Uitleg over de idt volgt binnenkort.

3 Reacties:

  • Nou ik wacht al op het vervolg :) zijn interrupts alleen mogelijk in C? Denk niet dat dit in Java mogelijk is omdat dit op hoger niveau werkt ?

    Ward Loockx
    http://wardloockx.blogspot.com

    Door Blogger Ward, op 05 september, 2006 11:23  

  • Ik zal deze week weer verder gaan met het vervolg. Het is in theorie mogelijk een OS te schrijven in java maar ik heb nog niemand gezien die dat geprobeerd heeft. Je moet dan namelijk wel een JVM zien te draaien en daarbinnen je eigen OS.

    Door Blogger Yexo, op 05 september, 2006 11:29  

  • Voor zover ik IRQ's begrijp, kan een exception en een hardware interrupt dezelfde interrupt routine oproepen.

    Hoe maak je het onderscheid tussen beide ? Ik dacht wel ooit eens ergens gelezen te hebben dat je de PIC kunt herprogrammeren zodat de exceptions niet meer samenvallen met IRQ's. Weet je toevallig waar ik info hierover kan vinden ?

    Door Anonymous Anoniem, op 20 april, 2007 16:07  

Een reactie posten

<< Home