Systemanrop i OS (Operating System): Hva er, typer og eksempler

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
Systemet ringer inn Operating System

Eksempel på systemanrop

Hvis vi for eksempel trenger å skrive en programkode for å lese data fra en fil, kopierer du disse dataene til en annen fil. Den første informasjonen som programmet krever er navnet på de to filene, inngangs- og utdatafilene.

I et interaktivt system krever denne typen programkjøring noen systemanrop fra OS.

  • Første samtale er å skrive en melding på skjermen
  • For det andre, for å lese fra tastaturet, tegnene som definerer de to filene.

Hvordan fungerer systemanrop?

Her er trinnene for systemanrop i OS:

Systemanrop fungerer

Architecture of system call

Architecture of system call

Som du kan se i eksempeldiagrammet ovenfor.

Trinn 1) Prosessene som utføres i brukermodus til det tidspunktet et systemanrop avbryter det.

Trinn 2) Deretter kjøres systemkallet i kjernemodus på prioritetsbasis.

Trinn 3) Når kjøringen av systemanrop er over, går kontrollen tilbake til brukermodus.,

Trinn 4) Utføringen av brukerprosesser ble gjenopptatt i Kjernemodus.

Hvorfor trenger du systemanrop i OS?

Følgende er situasjoner som krever systemanrop i OS:

  • 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 skanner, skriver, trenger et systemanrop.

Typer systemanrop

Her er de fem typene systemanrop i OS:

  • Prosesskontroll
  • Filbehandling
  • Enhetsbehandling
  • Informasjonsvedlikehold
  • kommunikasjon
Typer systemanrop

Typer systemanrop i OS

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 koble til/fra 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 typer systemanrop brukes spesielt for kommunikasjon mellom prosesser.

Funksjoner:

  • Opprett, slett kommunikasjonsforbindelser
  • Send, motta melding
  • Hjelp OS til å overføre statusinformasjon
  • Koble til eller fra eksterne enheter

Regler for å sende parametere for systemanrop

Her er generelle vanlige regler for å sende parametere til systemanropet:

  • Parametre bør skyves på eller sprettes av stabelen av operativsystemet.
  • Parametre kan sendes i registre.
  • Når det er flere parametere enn registre, skal det lagres i en blokk, og blokkadressen skal sendes som en parameter til et register.

Viktige systemanrop som brukes i OS

vente()

I noen systemer må en prosess vente på at en annen prosess fullfører utførelsen. Denne typen situasjoner oppstår når en overordnet prosess oppretter en underordnet prosess, og utførelsen av den overordnede prosessen forblir suspendert til dens underordnede prosess kjøres.

Suspensjonen av den overordnede prosessen skjer automatisk med et wait() systemkall. Når den underordnede prosessen avslutter kjøringen, flyttes kontrollen tilbake til den overordnede prosessen.

gaffel()

Prosesser bruker dette systemkallet til å lage prosesser som er en kopi av dem selv. Ved hjelp av dette systemet oppretter Call parent-prosessen en underordnet prosess, og utførelsen av den overordnede prosessen vil bli suspendert til den underordnede prosessen kjøres.

utføre ()

Dette systemkallet kjører når en kjørbar fil i sammenheng med en allerede kjørende prosess som erstatter den eldre kjørbare filen. Imidlertid forblir den opprinnelige prosessidentifikatoren ettersom en ny prosess ikke bygges, men stabel, data, hode, data osv. erstattes av den nye prosessen.

drepe()

Kill()-systemkallet brukes av OS for å sende et avslutningssignal til en prosess som oppfordrer prosessen til å avslutte. Et drepesystemanrop betyr imidlertid ikke nødvendigvis å drepe prosessen og kan ha ulike betydninger.

exit ()

Systemkallet exit() brukes til å avslutte programkjøringen. Spesielt i flertrådsmiljøet definerer dette kallet at trådutførelsen er fullført. OS gjenvinner ressurser som ble brukt av prosessen etter bruk av exit() systemkall.

Sammendrag

Kategorier Windows Unix
Prosesskontroll CreateProcess()
ExitProcess()
WaitForSingleObject()
gaffel()
exit ()
vente()
Enhetsmanipulasjon SetConsoleMode()
ReadConsole()
WriteConsole()
loctl()
lese()
skrive()
Filmanipulering CreateFile()
ReadFile()
WriteFile()
Lukk Håndtak()
Åpne()
Lese()
skrive()
lukke!)
Informasjonsvedlikehold GetCurrentProcessID()
SetTimer()
Sove()
blid()
alarm()
søvn()
Kommunikasjon CreatePipe()
CreateFileMapping()
MapViewOfFile()
Rør()
shm_open()
mmap()
beskyttelse SetFileSecurity()
InitializeSecurityDescripteller()
Sett SecurityDescripteller Gruppe ()
Chmod()
Umask()
Chown()

Oppsummer dette innlegget med: