GeeksforGeeks

, Author

Keskeytys on laitteiston tai ohjelmiston lähettämä signaali, kun prosessi tai tapahtuma vaatii välitöntä huomiota. Se varoittaa prosessoria korkean prioriteetin prosessista, joka vaatii nykyisen työprosessin keskeyttämistä. I/O-laitteissa yksi väylän ohjauslinjoista on varattu tähän tarkoitukseen ja sitä kutsutaan keskeytyspalvelurutiiniksi (Interrupt Service Routine, ISR).

Kun laite herättää keskeytyksen vaikkapa prosessissa i, prosessori suorittaa ensin loppuun käskyn i. Sitten se lataa ohjelmalaskuriin (PC) ISR:n ensimmäisen käskyn osoitteen. Ennen kuin ohjelmalaskuri ladataan osoitteella, keskeytetyn käskyn osoite siirretään väliaikaiseen paikkaan. Näin ollen prosessori voi keskeytyksen käsittelyn jälkeen jatkaa prosessilla i+1.

Kun prosessori käsittelee keskeytyksiä, sen on ilmoitettava laitteelle, että sen pyyntö on tunnistettu, jotta se lopettaa keskeytyspyyntösignaalin lähettämisen. Myös rekistereiden tallentaminen, jotta keskeytetty prosessi voidaan palauttaa tulevaisuudessa, lisää viivettä keskeytyksen vastaanottamisen ja ISR:n suorituksen aloittamisen välillä. Tätä kutsutaan keskeytysviiveeksi (Interrupt Lattency).

Laitteistokeskeytykset:
Laitteistokeskeytyksessä kaikki laitteet ovat yhteydessä keskeytyspyyntölinjaan. Yhtä pyyntölinjaa käytetään kaikille n laitteelle. Keskeytyspyyntöä varten laite sulkee siihen liittyvän kytkimen. Kun laite pyytää keskeytystä, INTR:n arvo on yksittäisten laitteiden pyyntöjen looginen OR.

IRQ:n käsittelyyn liittyvä tapahtumaketju:

  1. Laitteet herättävät IRQ:n.
  2. Prosessori keskeyttää parhaillaan suoritettavan ohjelman.
  3. Laitteelle ilmoitetaan, että sen pyyntö on tunnistettu, ja laite poistaa pyyntösignaalin käytöstä.
  4. Pyydetty toiminto suoritetaan.
  5. Keskeytys otetaan käyttöön ja keskeytynyttä ohjelmaa jatketaan.

Monien laitteiden käsittely:
Kun useampi kuin yksi laite herättää keskeytyspyyntösignaalin, tarvitaan lisätietoja, jotta voidaan päättää, kumpi laite otetaan huomioon ensin. Seuraavia menetelmiä käytetään päättämään, mikä laite valitaan: Polling, Vectored Interrupts ja Interrupt Nesting. Nämä selitetään seuraavassa.

  1. Polling:
    Pollingissa ensimmäinen laite, joka kohdataan ja jonka IRQ-bitti on asetettu, on laite, jota palvellaan ensin. Asianmukaista ISR:ää kutsutaan saman laitteen huoltamiseksi. Se on helppo toteuttaa, mutta paljon aikaa menee hukkaan kaikkien laitteiden IRQ-bitin kyselemiseen.
  2. Vektoroidut keskeytykset:
    Vektoroiduissa keskeytyksissä keskeytystä pyytävä laite identifioi itsensä suoraan lähettämällä erityisen koodin prosessorille väylän kautta. Näin prosessori voi tunnistaa keskeytyksen aiheuttaneen laitteen. Erikoiskoodi voi olla ISR:n aloitusosoite tai se, missä ISR sijaitsee muistissa, ja sitä kutsutaan keskeytysvektoriksi.
  3. Keskeytyspesäkkeet:
    Tässä menetelmässä I/O-laite on järjestetty prioriteettirakenteeseen. Siksi korkeamman prioriteetin laitteesta tuleva keskeytyspyyntö tunnistetaan, kun taas alemman prioriteetin laitteesta tuleva pyyntö ei tunnisteta. Tämän toteuttamiseksi jokainen prosessi/laite (jopa prosessori). Prosessori hyväksyy keskeytyksiä vain laitteilta/prosesseilta, joilla on suurempi prioriteetti kuin sillä.

Prosessorin prioriteetti on koodattu muutamaan bittiin PS:ssä (Process Status register). Sitä voidaan muuttaa ohjelmakäskyillä, jotka kirjoittavat PS:ään. Prosessori on valvotussa tilassa vain suorittaessaan käyttöjärjestelmän rutiineja. Se siirtyy käyttäjätilaan ennen sovellusohjelmien suorittamista.

Attention reader! Älä lopeta oppimista nyt. Hanki käsiisi kaikki tärkeät CS-teorian käsitteet SDE-haastatteluihin CS-teoriakurssilla opiskelijaystävälliseen hintaan ja tule teollisuusvalmiiksi.

Artikkeli Tunnisteet :

Vastaa

Sähköpostiosoitettasi ei julkaista.