IDT (ja Englanti Interrupt Descriptor taulukko ) on datataulukko sijaitsee muistissa tietokoneen ja x86- arkkitehtuurista , ja jolloin mikroprosessori hallita keskeytyksiä .
Tämä on matriisi, joka käsittää enintään 256 kuvaajien 8 tavua kukin , eli yksi avainsana kohti keskeyttää. Sen muistipaikka on tallennettu prosessorin IDTR-rekisteriin . Kun keskeytys laukaistaan, prosessori lukee vastaavan rivin IDT: ssä ja suorittaa käsittelyn, joka liittyy tällä rivillä luettuihin arvoihin.
IDTR-rekisteri on 48-bittinen rekisteri, jonka alemmat 16 bittiä edustavat IDT: n kokoa tavuina, kun taas ylemmät 32 bittiä edustavat IDT: n fyysistä osoitetta muistissa. Tähän rekisteriin pääsee vain kahdella asennusohjeella: lidt (Lataa muistipaikka IDTR: ään) ja sidt (Aseta IDTR: n sisältö muistipaikkaan).
Ensimmäinen 32 keskeytyksiä ( n o 0-31) on varattu poikkeuksia (virheet) tuottamat mikroprosessorin . Laitteiston kuusi keskeytystä liittyy yleensä keskeytyksiin n: o 32 - 47. Mutta käyttäjät voivat soittaa kaikkiin keskeytyksiin vapaasti opetusohjelmien avulla edellyttäen, että käyttöjärjestelmä sen sallii.
Jokaisella kuvaajalla on seuraava rakenne: (korkeimmista bitteistä pienimpiin)
Oveja on erilaisia:
Linux luokittelee eri tyyppiset ovet (kuvaaja), jotka se sisällyttää IDT: hen, eri tavalla:
Kun BIOS luovuttaa ohjauksen käyttöjärjestelmälle , IDT: tä ei ole. Itse asiassa mikroprosessorin todellisessa tilassa käyttämä IVT ei ole samassa muodossa kuin IDT, eikä sitä siksi voida käyttää suojatussa tilassa . Tämä ei kuitenkaan ole ongelma, koska keskeytyslippu (IF) on asetettu arvoon 0 , mikä estää naamattavan keskeytyksen laukeamisen niin kauan kuin sitä tarvitaan.
Käyttöjärjestelmä huolehtii IDT: n eri merkintöjen luomisesta ja sen sijainnin ja pituuden toimittamisesta mikroprosessorille lidt assembler- käskyn avulla . Tämä sijainti on yleensä lähellä ytimen koodia . Huomaa kuitenkin, että mikroprosessori käyttää henkilöhakua lukiessaan IDT: tä, mikä sallii käyttöjärjestelmän (vaikkakaan mikään tärkeimmistä käyttöjärjestelmistä ei pakota) luoda eri IDT jokaiselle käynnissä olevalle ohjelmalle.
IDT: tä on vastaavia monissa muissa prosessoriarkkitehtuureissa, mutta niillä on paljon erilainen muoto.