logo

Ero ISR:n ja Function Callin välillä

Tässä artikkelissa opit eroista ISR ja toimintokutsu , mutta ennen kuin keskustelet eroista, sinun on tiedettävä lyhyesti ISR- ja funktiokutsu.

mikä on hashset java

Mikä on ISR?

Keskeytyspalvelurutiini (ISR) on ohjelmistorutiini, jonka laitteisto kutsuu vastauksena keskeytykseen. ISR tutkii keskeytyksen, määrittää kuinka sitä käsitellään, suorittaa sen ja palauttaa loogisen keskeytyksen arvon. Jos lisäkäsittelyä ei tarvita, ISR ilmoittaa ytimelle palautusarvon. ISR:n on suoritettava hyvin nopeasti, jotta laitteen ja kaikkien alemman prioriteetin ISR:ien toiminta ei hidastuisi.

Vaikka ISR saattaa siirtää tietoja CPU-rekisteristä tai laitteistoportista muistipuskuriin, se yleensä käyttää omistettua keskeytyssäiettä (tai tehtävää), jota kutsutaan keskeytyspalvelusäikeeksi (IST), suorittaakseen suurimman osan vaaditusta käsittelystä. Jos lisäkäsittelyä tarvitaan, ISR palauttaa loogisen keskeytyksen arvon ytimelle. Sitten se kartoittaa fyysisen keskeytyksen numeron loogiseen keskeytysarvoon.

Keskeytyksen käsittelymekanismi

Alla on keskeytyksen käsittelymekanismi seuraavissa vaiheissa, kuten:

  • Keskeytys on ehto, joka saa CPU:n keskeyttämään nykyisen ohjelman ja suorittamaan ISR:n. ISR on erityisesti kirjoitettu ohjelma, joka palvelee keskeytyksen aiheuttanutta tilaa.
  • Kun keskeytys on huollettu, CPU palaa pääohjelmaan täsmälleen seuraavan käskyn jälkeen, josta se oli lähtenyt.
  • Keskeytysohjatussa tiedonsiirrossa I/O-laite keskeyttää CPU:n aina, kun se on valmis tiedonsiirtoon. ISR:ssä CPU suorittaa tiedonsiirron.
  • Tämä menetelmä on parempi kuin pollaus, koska CPU:n ei tarvitse tuhlata aikaa I/O-laitteen tilan tarkistamiseen. Näppäimistö on hyvä esimerkki keskeytysohjatusta I/O-käytöstä.
  • CPU:n tarkistamisen sijaan näppäimistön tulisi keskeyttää CPU, kun näppäintä painetaan. Näin aikaa ei mene hukkaan näppäimistön toistuvaan tarkistamiseen, kun käyttäjä ei kirjoita ollenkaan.
  • I/O-laite pyytää keskeytystä lähettämällä $overline{INTR}$ signaali CPU:lle.
  • Aina kun CPU vastaanottaa $overline{INTR}$ signaali, se päättää nykyisen käskyn suorittamisen ja suorittaa sitten ISR:n. Kun CPU on valmis, se lähettää kuittaussignaalin SILLÄ AIKAA linja.
  • ISR suoritetaan ja CPU palaa pääohjelmaan.
  • I/O-laitteet sammuttavat $overline{INTR}$ signaali suorituksen jälkeen.
Ero ISR:n ja Function Callin välillä

Esimerkiksi: Alla olevassa esimerkissä I/O-siirto keskeytysohjatulla I/O:lla.

  • Jos I/O-laitteen, joka haluaa suorittaa tiedonsiirron prosessorin kanssa, on keskeytettävä prosessori.
  • Keskeytys on tila, joka saa prosessorin suorittamaan keskeytyspalvelurutiinin.
  • ISR:ssä prosessori suorittaa tiedonsiirron I/O-laitteen kanssa.

Tässä esimerkissä keskeytä pyyntö painamalla näppäimistön näppäintä,

  • Sen sijaan, että prosessori tarkistaisi, onko näppäintä painettu, näppäimistö keskeyttää prosessorin näppäintä painettaessa.
  • Näppäimistön ISR:ssä, joka on osa näppäimistön ajuriohjelmistoa, prosessori lukee tiedot näppäimistöltä.
Ero ISR:n ja Function Callin välillä

ISR:n edut

Alla on seuraavat ISR:n edut, kuten:

  • ISR:n asynkronisia tapahtumia voi tapahtua milloin tahansa ohjelman suorituksen aikana.
  • ISR tallentaa PC:n, liput ja rekisterit pinoon, poistaa kaikki keskeytykset käytöstä ja lataa ISR:n osoitteen.
  • ISR:llä ei voi olla argumentteja, jotka voidaan välittää sille.
  • ISR ei voi palauttaa arvoja.
  • ISR mahdollistaa keskeytykset.
  • Yleensä ISR on pieni, koska se vie jonkin muun prosessin aikaa.
  • Joillakin ISR:illä on oma pino.

Mikä on Function Call?

Toimintokutsua kutsutaan myös alirutiinikutsuksi. Aliohjelma on joukko ohjeita, joita ohjelma tarvitsee toistuvasti. Se on osa suurempaa ohjelmaa, joka vastaa tietyn tehtävän suorittamisesta. Suurempi ohjelma voi suorittaa raskaan työmäärän, ja aliohjelma voi suorittaa vain yksinkertaista tehtävää, joka on myös riippumaton jäljellä olevasta ohjelman koodauksesta.

Funktio on koodattu siten, että sitä voidaan kutsua useita kertoja ja eri paikoista (jopa muiden funktioiden sisältä). Kun funktiota kutsutaan, prosessori voi mennä sinne, missä funktion koodi on, ja suorittaa funktion käskyt yksitellen. Toimintojen suorittamisen jälkeen prosessori palaa täsmälleen siitä mihin se jäi ja jatkaa suorittamista seuraavasta käskystä alkaen.

Funktiot ovat loistava työkalu koodin uudelleenkäyttöön. Monet nykyaikaiset ohjelmointikielet tukevat toimintoja. Joukkoa funktioita kutsutaan a kirjasto . Kirjastoja käytetään usein ohjelmistojen jakamiseen ja kauppaan. Joissakin tapauksissa koko ohjelma voi olla aliohjelmien sarja.

8086-prosessorin tapauksessa aliohjelma kutsuu a PUHELU ohje ja ohjaus palauttaa a OIKEIN ohje. Se pienentää ohjelman kokoa.

linux muokata tiedostoa

Ero ISR:n ja Function Callin välillä

Funktiolle on kutsuttava eksplisiittisesti, ja se on osa samaa kontekstia ja suoritussäiettä kuin sen kutsuja. Laitteiston ISR:ää ei nimenomaisesti kutsuta, vaan jokin ulkoinen tapahtuma kutsuu sen. Nykyisen säikeen konteksti säilyy automaattisesti, kun keskeytystä kutsutaan ennen kontekstin vaihtamista ISR:ään.

Vastineeksi tapahtuu käänteinen kontekstin vaihto, joka palauttaa prosessorin tilan ennen keskeytystä niin, että suoritus jatkuu keskeytyskohdasta. Alla on vielä joitain eroja ISR:n ja funktiokutsun välillä.

ISR Toimintokutsu
Keskeytyksen käynnistää yleensä sisäinen tai ulkoinen signaalimikroprosessori eikä käskyjen suorittaminen. ISR suoritetaan sen jälkeen, kun ohjelman nykyinen tila on tallennettu pinoon.
ISR suorittaa erilaisia ​​tehtäviä riippuen keskeytetystä laitteesta tai ohjelmoijan kirjoittamista ohjeista.
Toimintokutsu kutsutaan suorittamalla käskyt, jotka suorittavat tietyt tehtävät ja pienentävät ohjelman kokoa.
Laitteisto määrittää ISR:n osoitteen.
ISR-osoite kirjoitetaan keskeytysvektoritaulukon sisään, ja kunkin keskeytyksen ISR-osoite on kiinteä.
Aliohjelman osoite kirjoitetaan käskyn sisään, joka kirjoitetaan pääohjelmakoodin sisään.
ISR:ää käytetään kaikkiin yleisiin tehtäviin. Ohjelmakohtaisia ​​tehtäviä varten tehdään toimintokutsuja.
Kun keskeytys tapahtuu nykyisen ohjelman suorituksen aikana, prosessori suorittaa tämänhetkisen käskyn suorittamisen jälkeen ISR:n. ISR:n suorittamisen jälkeen prosessorin on jatkettava ohjelmaa täsmälleen kuten ennen keskeytystä.
Tätä varten tallennetaan tietokoneen sisältö, µP-rekisterit ja jotkin tilaolosuhteet. Kaikkien tilabittiehtojen kokoelmaa mikroprosessorissa kutsutaan PSW:ksi (ohjelman tilasana).
  • Keskeytysjakson aikana PC:n ja PSW:n sisältö työnnetään pinoon. Tietyn keskeytyksen haaraosoite välitetään sitten PC:lle ja uusi PSW ladataan tilarekisteriin.
  • ISR:n viimeinen käsky on paluu keskeytetystä käskystä. Kun tämä käsky suoritetaan, vanha PSW ja paluuosoite pompataan pinosta.
Täällä pinoon on tallennettu vain PC, jotta saadaan pääohjelman seuraavan käskyn osoite.
Aliohjelmalla on oltava pääsy kutsuvan aliohjelman tietoihin ja palautettava tulokset kyseiselle aliohjelmalle. Siksi aliohjelman parametrit ja datalinkitys tehdään.
Tämä voidaan tehdä läpi
  • AC-rekisteriä voidaan käyttää yhdelle tuloparametrille ja yhdelle lähtöparametrille. Tietokoneissa, joissa on useita prosessorirekistereitä, enemmän parametreja voidaan välittää tällä tavalla.
  • Toinen tapa siirtää tietoja aliohjelmalle on muistin kautta.