Järjestelmäpuhelu keskeyttää
Tyypillinen suoritin suorittaa ohjeet yksi kerrallaan. Mutta voi olla tilanteita, joissa prosessorin on pysäytettävä väliaikaisesti ja pidettävä voimassa oleva käsky ja suoritettava jokin muu ohjelma tai koodisegmentti (asuu jossain muussa paikassa). Suoritettuaan tämän prosessori palaa normaaliin suoritukseen ja jatkaa siitä, mihin se jäi. Järjestelmäpuhelu ja keskeytys ovat tällaisia tapauksia. Järjestelmäpuhelu on puhelu järjestelmään sisäänrakennettuun aliohjelmaan. Keskeytys on ulkoisen laitteiston tapahtumien aiheuttama ohjelmanhallinnan keskeytyminen.
Mikä on järjestelmäpuhelu?
Järjestelmäpuhelut tarjoavat tietokoneella käynnissä oleville ohjelmille käyttöliittymän keskustellaksesi käyttöjärjestelmän kanssa. Kun ohjelman on pyydettävä palvelua (jolle sillä ei ole itsellään lupaa) käyttöjärjestelmän ytimeltä, se käyttää järjestelmäkutsua. Käyttäjätason prosesseilla ei ole samoja oikeuksia kuin prosesseilla, jotka ovat vuorovaikutuksessa suoraan käyttöjärjestelmän kanssa. Esimerkiksi kommunikoidaksesi ulkoisen I / O-laitteen kanssa ja ollakseen vuorovaikutuksessa muiden prosessien kanssa, ohjelman on käytettävä järjestelmäpuheluita.
Mikä on keskeytys?
Tietokoneohjelman normaalin suorituksen aikana voi tapahtua tapahtumia, jotka voivat aiheuttaa CPU: n tilapäisen pysähtymisen. Tämän tyyppisiä tapahtumia kutsutaan keskeytyksiksi. Keskeytykset voivat johtua joko ohjelmisto- tai laitteistovirheistä. Laitteiston keskeytyksiä kutsutaan (yksinkertaisesti) keskeytyksiksi, kun taas ohjelmistokatkoksia kutsutaan poikkeuksiksi tai ansoiksi. Kun keskeytys (ohjelmisto tai laitteisto) on nostettu, ohjaus siirretään erityiseen aliohjelmaan, nimeltään ISR (Interrupt Service Routine), joka pystyy käsittelemään keskeytyksen aiheuttamat olosuhteet..
Kuten edellä mainittiin, termi Interrupt on yleensä varattu laitteistokatkoksille. Ne ovat ulkoisten laitteistotapahtumien aiheuttamia ohjelmanhallinnan keskeytyksiä. Tässä CPU: n ulkopuoliset välineet. Laitteiston keskeytykset tulevat yleensä monista eri lähteistä, kuten ajastinpiiri, oheislaitteet (näppäimistöt, hiiri jne.), I / O-portit (sarja-, rinnakkais jne.), Levyasemat, CMOS-kello, laajennuskortit (äänikortti, video kortti jne.). Tämä tarkoittaa, että laitteistokatkoksia ei tapahdu melkein koskaan suorittavan ohjelman yhteydessä tapahtuneiden tapahtumien takia. Esimerkiksi tapahtuma, kuten käyttäjän näppäimistön painallus tai sisäisen laitteiston ajastimen aikakatkaisu, voi lisätä tällaista keskeytystä ja voi ilmoittaa prosessorille, että tietty laite tarvitsee jonkin verran huomiota. Tällaisessa tilanteessa CPU lopettaa kaiken tekemänsä (ts. Keskeyttää nykyisen ohjelman), tarjoaa laitteen vaatiman palvelun ja palaa normaaliin ohjelmaan.
Mikä on ero järjestelmäpuhelun ja keskeytyksen välillä??
Järjestelmäpuhelu on puhelu järjestelmään sisäänrakennettuun aliohjelmaan, kun taas Keskeytys on tapahtuma, joka saa prosessorin pitämään väliaikaisesti nykyisen suorituksen. Yksi tärkeä ero on kuitenkin se, että järjestelmäpuhelut ovat synkronisia, kun taas keskeytykset eivät ole. Tämä tarkoittaa, että järjestelmäpuhelut tapahtuvat kiinteänä aikana (yleensä ohjelmoijan määrittelemät), mutta keskeytyksiä voi tapahtua milloin tahansa odottamattoman tapahtuman vuoksi, kuten käyttäjän näppäimistön painallus näppäimistölle. Siksi aina, kun järjestelmäkutsu tapahtuu, prosessorin on vain muistettava, mihin palata, mutta keskeytyksen yhteydessä prosessorin on muistettava sekä palaamispaikka että järjestelmän tila. Toisin kuin järjestelmäkutsu, keskeytys ei yleensä ole mitään tekemistä nykyisen ohjelman kanssa.