Järjestelmäkutsun ja toimintokutsun välinen ero

Järjestelmäkutsun ja toimintokutsun välinen ero
Järjestelmäkutsun ja toimintokutsun välinen ero

Video: Järjestelmäkutsun ja toimintokutsun välinen ero

Video: Järjestelmäkutsun ja toimintokutsun välinen ero
Video: Käyttöjärjestelmät ja systeemiohjelmointi 2021: Kernelien rakenne ja muistiosoitteet 2024, Marraskuu
Anonim

Järjestelmäkutsu vs. toimintokutsu

Tyypillinen prosessori suorittaa ohjeet yksitellen. Mutta saattaa olla tilanteita, joissa prosessorin on pysäytettävä nykyinen käsky ja suoritettava jokin muu ohjelma tai koodisegmentti (jossain muussa paikassa). Tämän jälkeen prosessori palaa normaaliin suoritukseen ja jatkaa siitä, mihin se jäi. Järjestelmäkutsu ja toimintokutsu ovat tällaisia tilaisuuksia. Järjestelmäkutsu on puhelu järjestelmään sisäänrakennetulle aliohjelmalle. Funktiokutsu on kutsu itse ohjelman sisällä olevalle aliohjelmalle.

Mikä on järjestelmäkutsu?

Järjestelmäkutsut tarjoavat tietokoneessa toimiville ohjelmille käyttöliittymän käyttöjärjestelmän kanssa keskustelemiseen. Kun ohjelma tarvitsee palvelua (johon sillä ei ole lupaa itse tehdä) 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 kommunikoidakseen ulkoisen I/O-laitteen kanssa tai ollakseen vuorovaikutuksessa muiden prosessien kanssa ohjelma käyttää järjestelmäkutsuja.

Mikä on funktiokutsu?

Funktion kutsua kutsutaan myös alirutiinikutsuksi. Aliohjelma (tunnetaan myös proseduurina, funktiona, menetelmänä tai rutiinina) 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 kirjastoksi. Kirjastoja käytetään usein ohjelmistojen jakamiseen ja kauppaan. Joissakin tapauksissa koko ohjelma voi olla aliohjelmien sarja (esim. säikeitetyn koodin käännös).

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

Järjestelmäkutsu on kutsu järjestelmään sisäänrakennetulle aliohjelmalle, kun taas funktiokutsu on kutsu ohjelman sisällä olevalle aliohjelmalle. Toisin kuin funktiokutsuja, järjestelmäkutsuja käytetään, kun ohjelman on suoritettava jokin tehtävä, johon sillä ei ole oikeuksia. Järjestelmäkutsut ovat sisääntulokohtia käyttöjärjestelmän ytimeen, eikä niitä ole linkitetty ohjelmaan (kuten funktiokutsut). Toisin kuin järjestelmäkutsut, funktiokutsut ovat kannettavia. Järjestelmäkutsun ylimääräinen aika on enemmän kuin funktiokutsulle, koska käyttäjätilan ja ydintilan välillä on tapahduttava siirtymä. Järjestelmäkutsut suoritetaan ytimen osoiteavaruudessa, kun taas funktiokutsut suoritetaan käyttäjän osoiteavaruudessa.

Suositeltava: