logo

Sistemski klici v operacijskem sistemu (OS)

Sistemski klic je način za vmesnik uporabniškega programa z operacijskim sistemom. Program zahteva več storitev in operacijski sistem se odzove tako, da prikliče vrsto sistemskih klicev, da ugodi zahtevi. Sistemski klic je lahko napisan v zbirnem jeziku ali v jeziku visoke ravni, kot je npr C oz Pascal . Sistemski klici so vnaprej določene funkcije, ki jih lahko operacijski sistem neposredno prikliče, če je uporabljen jezik na visoki ravni.

V tem članku boste spoznali sistemske klice v operacijskem sistemu in razpravljali o njihovih vrstah ter o mnogih drugih stvareh.

Kaj je sistemski klic?

Sistemski klic je metoda, s katero računalniški program zahteva storitev od jedra operacijskega sistema, v katerem se izvaja. Sistemski klic je način interakcije z operacijskim sistemom prek programov. Sistemski klic je zahteva računalniške programske opreme do jedra operacijskega sistema.

The Vmesnik aplikacijskega programa (API) povezuje funkcije operacijskega sistema z uporabniškimi programi. Deluje kot povezava med operacijskim sistemom in procesom, kar programom na uporabniški ravni omogoča, da zahtevajo storitve operacijskega sistema. Do sistema jedra lahko dostopate samo s sistemskimi klici. Sistemski klici so potrebni za vse programe, ki uporabljajo vire.

Kako potekajo sistemski klici?

Ko mora računalniška programska oprema dostopati do jedra operacijskega sistema, izvede sistemski klic. Sistemski klic uporablja API za izpostavljanje storitev operacijskega sistema uporabniškim programom. To je edina metoda za dostop do sistema jedra. Vsi programi ali procesi, ki za izvajanje zahtevajo sredstva, morajo uporabljati sistemske klice, saj ti služijo kot vmesnik med operacijskim sistemom in uporabniškimi programi.

Spodaj je nekaj primerov, kako se sistemski klic razlikuje od uporabniške funkcije.

pawandeep rajan
  1. Funkcija sistemskega klica lahko ustvari in uporabi procese jedra za izvajanje asinhrone obdelave.
  2. Sistemski klic ima večjo avtoriteto kot standardni podprogram. Sistemski klic s privilegijem načina jedra se izvede v domeni zaščite jedra.
  3. Sistemski klici ne smejo uporabljati deljenih knjižnic ali kakršnih koli simbolov, ki niso prisotni v domeni zaščite jedra.
  4. Koda in podatki za sistemske klice so shranjeni v globalnem pomnilniku jedra.

Zakaj potrebujete sistemske klice v operacijskem sistemu?

V različnih situacijah morate zahtevati sistemske klice v operacijskem sistemu. Naslednje situacije so naslednje:

  1. Zahtevati ga je treba, ko želi datotečni sistem ustvariti ali izbrisati datoteko.
  2. Omrežne povezave zahtevajo sistemske klice za pošiljanje in prejemanje podatkovnih paketov.
  3. Če želite prebrati ali napisati datoteko, morate sistemske klice.
  4. Če želite dostopati do strojne opreme, vključno s tiskalnikom, optičnim bralnikom, potrebujete sistemski klic.
  5. Sistemski klici se uporabljajo za ustvarjanje in upravljanje novih procesov.

Kako delujejo sistemski klici

Aplikacije se izvajajo v območju pomnilnika, znanem kot uporabniški prostor. Sistemski klic se poveže z jedrom operacijskega sistema, ki se izvaja v prostoru jedra. Ko aplikacija ustvari sistemski klic, mora najprej pridobiti dovoljenje jedra. To doseže z zahtevo za prekinitev, ki prekine trenutni proces in prenese nadzor na jedro.

arraylist sort

Če je zahteva dovoljena, jedro izvede zahtevano dejanje, kot je ustvarjanje ali brisanje datoteke. Kot vhodni podatek prejme aplikacija izhod jedra. Aplikacija po prejetem vnosu nadaljuje postopek. Ko je operacija končana, jedro vrne rezultate aplikaciji in nato premakne podatke iz prostora jedra v uporabniški prostor v pomnilniku.

Preprost sistemski klic lahko traja nekaj nanosekund, da zagotovi rezultat, na primer pridobitev sistemskega datuma in ure. Bolj zapleten sistemski klic, kot je povezovanje z omrežno napravo, lahko traja nekaj sekund. Večina operacijskih sistemov zažene ločeno nit jedra za vsak sistemski klic, da se izogne ​​ozkim grlom. Sodobni operacijski sistemi so večnitni, kar pomeni, da lahko obravnavajo različne sistemske klice hkrati.

Vrste sistemskih klicev

Običajno obstaja pet vrst sistemskih klicev. Ti so naslednji:

Sistemski klici v operacijskem sistemu
    Nadzor procesa Upravljanje datotek Upravljanje naprav Vzdrževanje informacij Komunikacija

Zdaj boste enega za drugim izvedeli o vseh različnih vrstah sistemskih klicev.

Nadzor procesa

Nadzor procesa je sistemski klic, ki se uporablja za usmerjanje procesov. Nekateri primeri nadzora procesov vključujejo ustvarjanje, nalaganje, prekinitev, konec, izvajanje, obdelavo, prekinitev procesa itd.

Upravljanje datotek

Upravljanje datotek je sistemski klic, ki se uporablja za upravljanje datotek. Nekateri primeri upravljanja datotek vključujejo ustvarjanje datotek, brisanje datotek, odpiranje, zapiranje, branje, pisanje itd.

Upravljanje naprav

Upravljanje naprav je sistemski klic, ki se uporablja za obravnavanje naprav. Nekateri primeri upravljanja naprav vključujejo branje, napravo, pisanje, pridobivanje atributov naprave, sprostitev naprave itd.

Vzdrževanje informacij

Vzdrževanje informacij je sistemski klic, ki se uporablja za vzdrževanje informacij. Obstaja nekaj primerov vzdrževanja informacij, vključno s pridobivanjem sistemskih podatkov, nastavitvijo ure ali datuma, pridobitvijo ure ali datuma, nastavitvijo sistemskih podatkov itd.

Komunikacija

Komunikacija je sistemski klic, ki se uporablja za komunikacijo. Obstaja nekaj primerov komunikacije, vključno z ustvarjanjem, brisanjem komunikacijskih povezav, pošiljanjem, prejemanjem sporočil itd.

obratni niz v Javi

Primeri sistemskih klicev Windows in Unix

Obstajajo različni primeri sistemskih klicev Windows in Unix. Ti so navedeni spodaj v tabeli:

Proces Windows Unix
Nadzor procesa CreateProcess()
ExitProcess()
WaitForSingleObject()
Vilice()
Izhod()
Počakaj()
Manipulacija datotek CreateFile()
ReadFile()
WriteFile()
CloseHandle()
Odprto()
Preberi ()
Napiši()
Zapri()
Upravljanje naprav SetConsoleMode()
ReadConsole()
WriteConsole()
Ioctl()
Preberi ()
Napiši()
Vzdrževanje informacij GetCurrentProcessID()
SetTimer()
spanje ()
Getpid()
Alarm()
spanje ()
Komunikacija CreatePipe()
CreateFileMapping()
MapViewOfFile()
cev ()
Shmget()
Mmap()
Zaščita SetFileSecurity()
InitializeSecurityDescriptor()
SetSecurityDescriptorgroup()
Chmod()
umask()
Chown ()

Tukaj boste na kratko izvedeli nekaj metod:

odprto()

The odprto() sistemski klic vam omogoča dostop do datoteke v datotečnem sistemu. Datoteki dodeli sredstva in zagotovi ročaj, na katerega se lahko nanaša postopek. Številni procesi lahko odprejo datoteko hkrati ali samo z enim samim procesom. Vse temelji na datotečnem sistemu in strukturi.

preberi()

Uporablja se za pridobivanje podatkov iz datoteke v datotečnem sistemu. Na splošno sprejema tri argumente:

  • Deskriptor datoteke.
  • Medpomnilnik za shranjevanje prebranih podatkov.
  • Število bajtov za branje iz datoteke.

Datotečni deskriptor datoteke, ki jo želite prebrati, se lahko uporabi za njeno identifikacijo in odpiranje z uporabo odprto() pred branjem.

počakaj()

V nekaterih sistemih mora proces morda počakati, da drug proces dokonča njegovo izvajanje, preden nadaljuje. Ko nadrejeni proces ustvari podrejenega procesa, je izvajanje nadrejenega procesa začasno ustavljeno, dokler se podrejeni proces ne konča. The počakaj() sistemski klic se uporablja za prekinitev nadrejenega procesa. Ko podrejeni proces zaključi svojo izvedbo, se nadzor vrne nadrejenemu procesu.

.tif datoteko

pisati()

Uporablja se za pisanje podatkov iz uporabniškega medpomnilnika v napravo kot datoteko. Ta sistemski klic je eden od načinov, kako lahko program ustvari podatke. Na splošno so potrebni trije argumenti:

  • Deskriptor datoteke.
  • Kazalec na medpomnilnik, v katerem so shranjeni podatki.
  • Število bajtov, ki jih je treba zapisati iz medpomnilnika.

vilice ()

Procesi ustvarjajo svoje klone z uporabo vilice () sistemski klic. Je eden najpogostejših načinov ustvarjanja procesov v operacijskih sistemih. Ko nadrejeni proces ustvari podrejenega procesa, se izvedba nadrejenega procesa prekine, dokler se podrejeni proces ne zaključi. Ko podrejeni proces zaključi svojo izvedbo, se nadzor vrne nadrejenemu procesu.

zapri()

Uporablja se za prekinitev dostopa do datotečnega sistema. Ko je ta sistemski klic priklican, to pomeni, da program ne potrebuje več datoteke, in vmesni pomnilniki so izpraznili, informacije o datoteki so spremenjene, viri datoteke pa so zaradi tega razporejeni.

exec()

Ko izvršljiva datoteka nadomesti prejšnjo izvedljivo datoteko v procesu, ki se že izvaja, se prikliče ta sistemska funkcija. Ker nov proces ni zgrajen, stara identifikacija procesa ostane, vendar novi proces nadomesti podatke, sklad, podatke, glavo itd.

izhod()

The izhod() je sistemski klic, ki se uporablja za zaključek izvajanja programa. Ta klic označuje, da je izvajanje niti končano, kar je še posebej uporabno v okoljih z več nitmi. Operacijski sistem povrne sredstva, ki jih je porabil proces po uporabi izhod() sistemsko funkcijo.