Järjestelmäkutsu käyttöjärjestelmässä (Operating System): Mikä on, tyypit ja esimerkit
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.

Esimerkki järjestelmäkutsusta
Jos meidän on esimerkiksi kirjoitettava ohjelmakoodi lukeaksemme tietoja yhdestä tiedostosta, kopioi tiedot toiseen tiedostoon. Ensimmäinen tieto, jonka ohjelma tarvitsee, on kahden tiedoston nimi, tulo- ja tulostustiedostot.
Vuorovaikutteisessa järjestelmässä tämäntyyppinen ohjelman suorittaminen vaatii joitain järjestelmäkutsuja käyttöjärjestelmästä.
- Ensimmäinen puhelu on kirjoittaa kehotusviesti näytölle
- Toiseksi, lukeaksesi näppäimistöltä kaksi tiedostoa määrittävät merkit.
Kuinka järjestelmäpuhelu toimii?
Tässä ovat vaiheet järjestelmäkutsulle käyttöjärjestelmässä:
Kuten näet yllä annetusta järjestelmäkutsuesimerkkikaaviosta.
Vaihe 1) Prosessit suoritetaan käyttäjätilassa siihen asti, kun järjestelmäkutsu keskeyttää sen.
Vaihe 2) Sen jälkeen järjestelmäkutsu suoritetaan ydintilassa prioriteettiperiaatteella.
Vaihe 3) Kun järjestelmäkutsun suorittaminen on ohi, ohjaus palaa käyttäjätilaan.,
Vaihe 4) Käyttäjäprosessien suorittamista jatkettiin vuonna Ytimen tila.
Miksi tarvitset järjestelmäkutsuja käyttöjärjestelmässä?
Seuraavat ovat tilanteet, jotka 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.
- Laitteiston, kuten skannerin, tulostimen, käyttö vaatii järjestelmäkutsun.
Järjestelmäpuhelujen tyypit
Tässä on viisi järjestelmäkutsutyyppiä käyttöjärjestelmässä:
- Prosessinhallinta
- Tiedostonhallinta
- Laitehallinta
- Tietojen ylläpito
- Yhteydenpito
Prosessinhallinta
Tämä järjestelmäkutsu suorittaa prosessin 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ä/irrota laitteet loogisesti
- Hanki ja aseta laitteen attribuutit
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, poista viestintäyhteyksiä
- Lähetä, vastaanota viesti
- Auta käyttöjärjestelmää tilatietojen siirtämisessä
- Liitä tai irrota etälaitteita
Järjestelmäkutsun parametrien välittämisen säännöt
Tässä ovat yleiset yleiset säännöt parametrien välittämiseksi järjestelmäkutsulle:
- Käyttöjärjestelmän tulee asettaa parametrit päälle tai poistua pinosta.
- Parametrit voidaan välittää rekistereissä.
- Kun parametreja on enemmän kuin rekistereitä, se tulee tallentaa lohkoon ja lohkon osoite välitetään parametrina rekisteriin.
Käyttöjärjestelmässä käytetyt tärkeät järjestelmäkutsut
odota()
Joissakin järjestelmissä prosessin on odotettava toisen prosessin suorittamista loppuun. Tämän tyyppinen tilanne syntyy, kun pääprosessi luo aliprosessin ja pääprosessin suoritus pysyy keskeytettynä, kunnes sen aliprosessi suoritetaan.
Pääprosessin keskeytys tapahtuu automaattisesti wait()-järjestelmäkutsulla. Kun aliprosessi lopettaa suorituksen, ohjaus siirtyy takaisin pääprosessiin.
haarukka()
Prosessit käyttävät tätä järjestelmäkutsua luodakseen prosesseja, jotka ovat kopio itsestään. Tämän järjestelmän avulla Call-emoprosessi luo aliprosessin, ja pääprosessin suoritus keskeytetään, kunnes aliprosessi suoritetaan.
exec()
Tämä järjestelmäkutsu suoritetaan, kun suoritettava tiedosto jo käynnissä olevan prosessin yhteydessä korvaa vanhemman suoritettavan tiedoston. Alkuperäinen prosessin tunniste kuitenkin säilyy, koska uutta prosessia ei rakenneta, vaan pino, data, head, data jne. korvataan uudella prosessilla.
tappaa()
OS käyttää kill()-järjestelmäkutsua lähettääkseen lopetussignaalin prosessille, joka kehottaa prosessia poistumaan. Tappajärjestelmän kutsu ei kuitenkaan välttämättä tarkoita prosessin lopettamista ja sillä voi olla erilaisia merkityksiä.
exit ()
Exit()-järjestelmäkutsua käytetään lopettamaan ohjelman suorittaminen. Erityisesti monisäikeisessä ympäristössä tämä kutsu määrittää, että säikeen suoritus on valmis. Käyttöjärjestelmä ottaa takaisin prosessin käyttämät resurssit exit()-järjestelmäkutsun käytön jälkeen.
Yhteenveto
Kategoriat | Windows | unix |
---|---|---|
Prosessinhallinta | CreateProcess() ExitProcess() WaitForSingleObject() |
haarukka() exit () odota() |
Laitteen manipulointi | SetConsoleMode() ReadConsole() WriteConsole() |
loctl() lukea() kirjoittaa() |
Tiedostojen käsittely | Luo tiedosto() Lue tiedosto() Kirjoitatiedosto() SuljeHandle() |
Avata() Lukea() kirjoittaa() kiinni!) |
Tietojen ylläpito | Get CurrentProcessID() SetTimer() Nukkua() |
getpid() hälytys() nukkua() |
Viestintä | CreatePipe() CreateFileMapping() MapViewOfFile() |
Putki() shm_open() mmap() |
suojaus | SetFileSecurity() InitilializeSecurityDescripttai() AsetaSecurityDescripttaiRyhmä () |
Chmod() Umask() Chown() |