Järjestelmäkutsu käyttöjärjestelmässä (Operating System): Mikä on, tyypit ja esimerkit
⚡ Älykäs yhteenveto
Järjestelmäkutsu on hallittu rajapinta, jota prosessi käyttää ytimen palveluiden, kuten tiedostojen käytön, prosessinohjauksen ja laitekommunikaation, pyytämiseen, vaihtaen suorittimen turvallisesti käyttäjätilasta etuoikeutettuun ytimen tilaan.

Mikä on System Call in Operating System?
A järjestelmäpuhelu on mekanismi, joka tarjoaa rajapinnan prosessin ja käyttöjärjestelmän välillä. Se on ohjelmallinen menetelmä, jossa tietokoneohjelma pyytää palvelua käyttöjärjestelmän ytimeltä.
System call tarjoaa käyttöjärjestelmän palvelut käyttäjäohjelmille API:n (Application Programming Interface) kautta. Järjestelmäkutsut ovat ainoat sisääntulokohdat ydinjärjestelmälle.
Järjestelmä kutsuu sisään Operating System
Esimerkki järjestelmäkutsusta
Esimerkiksi kirjoittaakseen ohjelman, joka lukee tietoja yhdestä tiedostosta ja kopioi ne toiseen, ohjelma tarvitsee ensin kahden tiedoston nimet: syöte- ja tulostetiedostojen.
Vuorovaikutteisessa järjestelmässä tämäntyyppinen ohjelman suoritus vaatii käyttöjärjestelmältä joitakin järjestelmäkutsuja.
- Ensimmäinen tehtävä on kirjoittaa kehottava viesti näytölle.
- Toinen on lukea näppäimistöltä merkit, jotka määrittelevät kaksi tiedostoa.
Kuinka järjestelmäpuhelu toimii?
Tässä ovat järjestelmäkutsun vaiheet käyttöjärjestelmässä:
Archijärjestelmäkutsun rakenne
Kuten yllä olevasta järjestelmäkutsukaaviosta näet:
Vaihe 1) Prosessit suoritetaan käyttäjätilassa, kunnes järjestelmäkutsu keskeyttää ne.
Vaihe 2) Tämän jälkeen järjestelmäkutsu suoritetaan ydintilassa prioriteettiperusteisesti.
Vaihe 3) Kun järjestelmäkutsu on suoritettu, ohjaus palaa käyttäjätilaan.
Vaihe 4) Käyttäjäprosessien suoritus jatkuu ja siirtyminen käyttäjätilan ja päinvastoin tapahtuu. ydintila tarvittaessa.
Miksi tarvitset järjestelmäkutsuja käyttöjärjestelmässä?
Seuraavat tilanteet vaativat järjestelmäkutsuja käyttöjärjestelmässä:
- Tiedostojen lukeminen ja kirjoittaminen vaativat järjestelmäkutsuja.
- Jos tiedostojärjestelmä haluaa luoda tai poistaa tiedostoja, tarvitaan järjestelmäkutsuja.
- Järjestelmäkutsuja käytetään uusien prosessien luomiseen ja hallintaan.
- Verkkoyhteydet tarvitsevat järjestelmäpuheluita pakettien lähettämiseen ja vastaanottamiseen.
- Laitteisiin, kuten skanneriin tai tulostimeen, pääsy vaatii järjestelmäkutsun.
Järjestelmäkutsujen tyypit
Tässä on viisi järjestelmäkutsutyyppiä käyttöjärjestelmässä:
- Prosessinhallinta
- Tiedostonhallinta
- Laitehallinta
- Tietojen ylläpito
- Viestintä
Järjestelmäkutsujen tyypit käyttöjärjestelmässä
Prosessinhallinta
Nämä järjestelmäkutsut suorittavat prosessien luomisen, prosessin lopettamisen jne.
Toiminnot:
- Lopeta ja keskeytä
- Lataa ja suorita
- Luo prosessi ja lopeta prosessi
- Odota ja Signal Tapahtuma
- Varaa ja vapauta muistia
Tiedostonhallinta
Tiedostonhallintajärjestelmän kutsut käsittelevät tiedostojen käsittelyä, kuten tiedoston luomista, lukemista ja kirjoittamista jne.
Toiminnot:
- Luo tiedosto
- Poista tiedosto
- Avaa ja sulje tiedosto
- Lue, kirjoita ja sijoittaa uudelleen
- Hanki ja aseta tiedostomääritteet
Laitehallinta
Laitehallinta hoitaa laitteen manipuloinnin, kuten lukemisen laitepuskureista, kirjoittamisen laitepuskureihin jne.
Toiminnot:
- Pyydä ja vapauta laite
- Liitä tai irrota laitteita loogisesti
- Hae ja aseta laitteen ominaisuudet
Tietojen ylläpito
Se käsittelee tietoa ja sen siirtoa käyttöjärjestelmän ja käyttäjäohjelman välillä.
Toiminnot:
- Hae tai aseta aika ja päivämäärä
- Hanki prosessi- ja laitemääritteet
Viestintä
Tämän tyyppisiä järjestelmäkutsuja käytetään erityisesti prosessien väliseen viestintään.
Toiminnot:
- Luo ja poista tietoliikenneyhteyksiä
- Lähettää ja vastaanottaa viestejä
- Ohje käyttöjärjestelmän siirron tilatietojen kanssa
- Liitä tai irrota etälaitteita
Järjestelmäkutsun parametrien välittämisen säännöt
Tässä ovat yleiset säännöt parametrien välittämiseen järjestelmäkutsulle:
- Käyttöjärjestelmän tulisi asettaa parametrit pinoon tai poistaa ne pinosta.
- Parametrit voidaan välittää rekistereissä.
- Kun parametreja on enemmän kuin rekistereitä, ne tulisi tallentaa lohkoon ja lohkon osoite tulisi välittää rekisterissä.
Käyttöjärjestelmässä käytetyt tärkeät järjestelmäkutsut
odota()
Joissakin järjestelmissä prosessin on odotettava toisen valmistumista. Tämä tapahtuu, kun pääprosessi luo lapsiprosessin, ja pääprosessi pysyy keskeytettynä, kunnes lapsiprosessi on valmis.
Ylätason keskeytys tapahtuu automaattisesti wait()-järjestelmäkutsun myötä. Kun lapsitason suoritus päättyy, ohjaus siirtyy takaisin ylätasolle.
haarukka()
Prosessit käyttävät tätä järjestelmäkutsua luodakseen prosesseja, jotka ovat kopioita itsestään. fork()-funktion avulla pääprosessi luo lapsiprosessin, ja pääprosessi keskeytetään, kunnes lapsiprosessi suoritetaan.
exec()
Tämä järjestelmäkutsu suorittaa suoritettavan tiedoston jo käynnissä olevan prosessin sisällä ja korvaa vanhemman tiedoston. Alkuperäinen prosessitunniste säilyy, koska uutta prosessia ei rakenneta, mutta pino, data, keko jne. korvataan uudella prosessilla.
tappaa()
Käyttöjärjestelmä käyttää kill()-järjestelmäkutsua lähettääkseen prosessille lopetussignaalin, joka kehottaa sitä lopettamaan. Kill-järjestelmäkutsu ei kuitenkaan välttämättä tarkoita prosessin lopettamista, ja sillä voi olla useita merkityksiä.
exit ()
Järjestelmäkutsua exit() käytetään ohjelman suorituksen lopettamiseen. Erityisesti monisäikeisessä ympäristössä tämä kutsu määrittää, että säikeen suoritus on valmis. Käyttöjärjestelmä palauttaa prosessin käyttämät resurssit exit()-kutsun jälkeen.




