Järjestelmäpuhelun ja keskeytyksen välinen ero

Järjestelmäpuhelun ja keskeytyksen välinen ero
Järjestelmäpuhelun ja keskeytyksen välinen ero

Video: Järjestelmäpuhelun ja keskeytyksen välinen ero

Video: Järjestelmäpuhelun ja keskeytyksen välinen ero
Video: Уроки Photoshop cs5. Фото на документы. 2024, Heinäkuu
Anonim

Järjestelmäpuhelu vs. keskeytys

Tyypillinen prosessori suorittaa ohjeet yksitellen. Mutta voi olla tilanteita, jolloin prosessori joutuu pysähtymään väliaikaisesti ja pitämään nykyistä käskyä ja suorittamaan jotain muuta ohjelmaa tai koodisegmenttiä (jossain muussa paikassa). Tämän jälkeen prosessori palaa normaaliin suoritukseen ja jatkaa siitä, mihin se jäi. Järjestelmäpuhelu ja keskeytys ovat sellaisia tilanteita. Järjestelmäkutsu on puhelu järjestelmään sisäänrakennetulle aliohjelmalle. Keskeytys on ulkoisten laitteistotapahtumien aiheuttama ohjelman ohjauksen keskeytys.

Mikä on järjestelmäkutsu?

Järjestelmäkutsut tarjoavat tietokoneessa toimiville ohjelmille käyttöliittymän käyttöjärjestelmän kanssa keskustelemiseen. Kun ohjelman on pyydettävä palvelua (johon sillä ei itsellään ole lupaa) käyttöjärjestelmän ytimestä, se käyttää järjestelmäkutsua. Käyttäjätason prosesseilla ei ole samoja käyttöoikeuksia kuin prosesseilla, jotka ovat suoraan vuorovaikutuksessa käyttöjärjestelmän kanssa. Esimerkiksi voidakseen kommunikoida ulkoisen I/O-laitteen kanssa tai ollakseen vuorovaikutuksessa muiden prosessien kanssa, ohjelman on käytettävä järjestelmäkutsuja.

Mikä on keskeytys?

Tietokoneohjelman normaalin suorituksen aikana saattaa tapahtua tapahtumia, jotka voivat aiheuttaa CPU:n tilapäisen pysähtymisen. Tällaisia tapahtumia kutsutaan keskeytyksiksi. Keskeytykset voivat johtua joko ohjelmisto- tai laitteistovioista. Laitteistokeskeytyksiä kutsutaan (yksinkertaisesti) keskeytyksiksi, kun taas ohjelmistokeskeytyksiä kutsutaan poikkeuksiksi tai ansoiksi. Kun keskeytys (ohjelmisto tai laitteisto) nostetaan, ohjaus siirretään erityiseen alirutiiniin nimeltä ISR (Interrupt Service Routine), joka pystyy käsittelemään keskeytyksen aiheuttamia ehtoja.

Kuten edellä mainittiin, termi Interrupt on yleensä varattu laitteistokeskeytyksiä varten. Ne ovat ulkoisten laitteistotapahtumien aiheuttamia ohjelman ohjauksen keskeytyksiä. Tässä ulkoinen tarkoittaa CPU:n ulkoista. Laitteistokeskeytykset tulevat yleensä monista eri lähteistä, kuten ajastinsiru, 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ä laitteiston keskeytyksiä ei juuri koskaan tapahdu suorittavaan ohjelmaan liittyvän tapahtuman vuoksi. Esimerkiksi tapahtuma, kuten käyttäjän näppäimistön näppäimen painallus tai sisäinen laitteiston ajastimen aikakatkaisu, voi nostaa tällaista keskeytystä ja ilmoittaa CPU:lle, että tietty laite tarvitsee huomiota. Tällaisessa tilanteessa CPU lopettaa tekemänsä (eli keskeyttää nykyisen ohjelman), tarjoaa laitteen tarvitseman palvelun ja palaa normaaliin ohjelmaan.

Mitä eroa on järjestelmäkutsulla ja keskeytyksellä?

Järjestelmäkutsu on kutsu järjestelmään sisäänrakennetulle aliohjelmalle, kun taas keskeytys on tapahtuma, joka saa prosessorin väliaikaisesti pysäyttämään nykyisen suorituksen. Yksi suuri ero on kuitenkin se, että järjestelmäkutsut ovat synkronisia, kun taas keskeytykset eivät ole. Tämä tarkoittaa, että järjestelmäkutsut tulevat tiettyyn aikaan (yleensä ohjelmoijan määrittämänä), mutta keskeytyksiä voi esiintyä milloin tahansa odottamattoman tapahtuman, kuten käyttäjän näppäimistön näppäimen painalluksen, vuoksi. Siksi aina kun järjestelmäkutsu tapahtuu, prosessorin on vain muistettava minne palata, mutta keskeytyksen sattuessa prosessorin on muistettava sekä paikka, johon palata, että järjestelmän tila. Toisin kuin järjestelmäkutsulla, keskeytyksellä ei yleensä ole mitään tekemistä nykyisen ohjelman kanssa.

Suositeltava: