Systemanrop i OS (Operating System): Hva er, typer og eksempler
โก Smart oppsummering
Systemkall er det kontrollerte grensesnittet en prosess bruker for รฅ be om kjernetjenester som filtilgang, prosesskontroll og enhetskommunikasjon, og dermed trygt bytte CPU-en fra brukermodus til privilegert kjernemodus.

Hva er System Call in Operating System?
A systemanrop er en mekanisme som gir grensesnittet mellom en prosess og operativsystemet. Det er en programmatisk metode der et dataprogram ber om en tjeneste fra kjernen til operativsystemet.
System call tilbyr tjenestene til operativsystemet til brukerprogrammene via API (Application Programming Interface). Systemanrop er de eneste inngangspunktene for kjernesystemet.
Systemet ringer inn Operating System
Eksempel pรฅ systemanrop
For eksempel, for รฅ skrive et program som leser data fra รฉn fil og kopierer den til en annen, trenger programmet fรธrst navnene pรฅ de to filene: input- og output-filene.
I et interaktivt system krever denne typen programutfรธrelse noen systemkall fra operativsystemet.
- Den fรธrste oppfordringen er รฅ skrive en oppfordringsmelding pรฅ skjermen.
- Det andre er รฅ lese tegnene som definerer de to filene fra tastaturet.
Hvordan fungerer systemanrop?
Her er trinnene for et systemkall i OS:
Architecture of system call
Som du kan se i systemkalldiagrammet ovenfor:
Trinn 1) Prosessene kjรธres i brukermodus inntil et systemkall avbryter dem.
Trinn 2) Etter det utfรธres systemkallet i kjernemodus pรฅ prioriteringsbasis.
Trinn 3) Nรฅr systemkallskjรธringen er over, gรฅr kontrollen tilbake til brukermodus.
Trinn 4) Utfรธrelsen av brukerprosesser gjenopptas, og veksler mellom brukermodus og kjernemodus som kreves.
Hvorfor trenger du systemanrop i OS?
Fรธlgende er situasjoner som krever systemkall i operativsystemet:
- Lesing og skriving fra filer krever systemanrop.
- Hvis et filsystem รธnsker รฅ opprette eller slette filer, kreves systemanrop.
- Systemanrop brukes til รฅ opprette og administrere nye prosesser.
- Nettverkstilkoblinger trenger systemanrop for รฅ sende og motta pakker.
- Tilgang til maskinvareenheter som en skanner eller skriver krever et systemkall.
Typer systemanrop
Her er de fem typene systemkall i OS:
- Prosesskontroll
- Filbehandling
- Enhetsbehandling
- Informasjonsvedlikehold
- Kommunikasjon
Typer systemkall i operativsystemet
Prosesskontroll
Disse systemkallene utfรธrer oppgaven med prosessoppretting, prosessavslutning osv.
Funksjoner:
- Avslutt og avbryt
- Last inn og utfรธr
- Opprett prosess og avslutt prosess
- Vent og Signal Event
- Tildel og frigjรธr minne
Filbehandling
Anrop til filbehandlingssystem hรฅndterer filmanipuleringsjobber som รฅ lage en fil, lese og skrive, etc.
Funksjoner:
- Lag en fil
- Slett fil
- ร pne og lukk filen
- Les, skriv og flytt
- Hent og angi filattributter
Enhetsbehandling
Enhetsadministrasjon gjรธr jobben med enhetsmanipulering som รฅ lese fra enhetsbuffere, skrive inn i enhetsbuffere, etc.
Funksjoner:
- Be om og slipp enheten
- Logisk tilkobling eller frakobling av enheter
- Hent og angi enhetsattributter
Informasjonsvedlikehold
Den hรฅndterer informasjon og dens overfรธring mellom operativsystemet og brukerprogrammet.
Funksjoner:
- Hent eller still inn tid og dato
- Fรฅ prosess- og enhetsattributter
Kommunikasjon
Disse typene systemkall brukes spesielt til kommunikasjon mellom prosesser.
Funksjoner:
- Opprette og slette kommunikasjonsforbindelser
- Send og motta meldinger
- Hjelp med statusinformasjonen for OS-overfรธring
- Koble til eller fra eksterne enheter
Regler for รฅ sende parametere for systemanrop
Her er de generelle reglene for รฅ sende parametere til systemkallet:
- Parametre bรธr legges inn pรฅ eller ut av stakken av operativsystemet.
- Parametre kan sendes i registre.
- Nรฅr det er flere parametere enn registre, bรธr de lagres i en blokk, og blokkadressen bรธr sendes i et register.
Viktige systemanrop som brukes i OS
vente()
I noen systemer mรฅ en prosess vente pรฅ at en annen skal fullfรธres. Dette skjer nรฅr en overordnet prosess oppretter en underordnet prosess, og den overordnede prosessen forblir suspendert inntil den underordnede prosessen fullfรธrer.
Foreldrens suspensjon skjer automatisk med et wait() systemkall. Nรฅr barnet avslutter kjรธringen, flyttes kontrollen tilbake til forelderen.
gaffel()
Prosesser bruker dette systemkallet til รฅ opprette prosesser som er en kopi av seg selv. Ved hjelp av fork() oppretter en foreldreprosess en barneprosess, og foreldreprosessen suspenderes inntil barneprosessen kjรธres.
utfรธre ()
Dette systemkallet kjรธrer en kjรธrbar fil i en prosess som allerede kjรธrer, og erstatter den eldre. Den opprinnelige prosessidentifikatoren forblir siden ingen ny prosess bygges, men stakken, dataene, heapen osv. erstattes av den nye prosessen.
drepe()
Systemkallet kill() brukes av operativsystemet til รฅ sende et avslutningssignal til en prosess, som ber den om รฅ avslutte. Et systemkalt kill betyr imidlertid ikke nรธdvendigvis at prosessen avsluttes, og kan ha forskjellige betydninger.
exit ()
Systemkallet exit() brukes til รฅ avslutte programkjรธringen. Spesielt i et flertrรฅdet miljรธ definerer dette kallet at trรฅdkjรธringen er fullfรธrt. Operativsystemet gjenvinner ressursene som ble brukt av prosessen etter exit()-kallet.




