Systemopkald i OS (Operating System): Hvad er, typer og eksempler

Hvad er System Call in Operating System?

A systemopkald er en mekanisme, der giver grænsefladen mellem en proces og operating system. Det er en programmatisk metode, hvor et computerprogram anmoder om en tjeneste fra kernen af ​​operativsystemet.

System call tilbyder tjenester fra operatingsystem til brugerprogrammerne via API (Application Programming Interface). Systemkald er de eneste indgangspunkter for kernesystemet.

System kalder ind Operating System
System kalder ind Operating System

Eksempel på systemkald

For eksempel, hvis vi skal skrive en programkode for at læse data fra en fil, kopier disse data til en anden fil. Den første information, som programmet kræver, er navnet på de to filer, input- og outputfilerne.

I et interaktivt system kræver denne type programudførelse nogle systemkald fra OS.

  • Første opkald er at skrive en meddelelse på skærmen
  • For det andet, at læse fra tastaturet de tegn, der definerer de to filer.

Hvordan fungerer systemopkald?

Her er trinene til systemopkald i OS:

Systemopkald virker

Architecture af systemkaldet

Architecture af systemkaldet

Som du kan se i det ovenfor givne systemopkald eksempeldiagram.

Trin 1) De processer, der udføres i brugertilstand, indtil et systemopkald afbryder det.

Trin 2) Derefter udføres systemkaldet i kernetilstanden på prioritetsbasis.

Trin 3) Når systemopkaldsudførelsen er slut, vender kontrollen tilbage til brugertilstand.,

Trin 4) Udførelsen af ​​brugerprocesser blev genoptaget i Kernetilstand.

Hvorfor har du brug for systemopkald i OS?

Following er situationer, der kræver systemkald i OS:

  • Læsning og skrivning fra filer kræver systemopkald.
  • Hvis et filsystem ønsker at oprette eller slette filer, er systemkald påkrævet.
  • Systemkald bruges til oprettelse og styring af nye processer.
  • Netværksforbindelser kræver systemopkald til afsendelse og modtagelse af pakker.
  • Adgang til hardwareenheder som scanner, printer kræver et systemopkald.

Typer af systemopkald

Her er de fem typer systemopkald i OS:

  • processtyring
  • Filhåndtering
  • Device Management
  • Informationsvedligeholdelse
  • Kommunikation
Typer af systemopkald

Typer af systemkald i OS

processtyring

Dette systemkald udfører opgaven med procesoprettelse, procesafslutning osv.

Funktioner:

  • Afslut og afbryd
  • Indlæs og udfør
  • Opret proces og afslut proces
  • Vent og signalér begivenhed
  • Tildel og frigør hukommelse

Filhåndtering

Filhåndteringssystemopkald håndterer filmanipulationsjob som at oprette en fil, læse og skrive osv.

Funktioner:

  • Opret en fil
  • Slet fil
  • Åbn og luk fil
  • Læs, skriv og flyt
  • Hent og indstil filattributter

Device Management

Enhedshåndtering udfører arbejdet med enhedsmanipulation som at læse fra enheden buffers, skriver ind i enheden buffers osv.

Funktioner:

  • Anmod om og frigiv enhed
  • Logisk tilslut/afmonter enheder
  • Hent og indstil enhedsattributter

Informationsvedligeholdelse

Den håndterer information og dens overførsel mellem OS og brugerprogrammet.

Funktioner:

  • Hent eller indstil tid og dato
  • Få proces- og enhedsattributter

Kommunikation

Disse typer systemopkald bruges specielt til kommunikation mellem processer.

Funktioner:

  • Opret, slet kommunikationsforbindelser
  • Send, modtag besked
  • Hjælp OS med at overføre statusoplysninger
  • Tilslut eller afmonter eksterne enheder

Regler for videregivelse af parametre for systemkald

Her er generelle almindelige regler for videregivelse af parametre til systemkaldet:

  • Parametre skal skubbes på eller springes af stakken af operating system.
  • Parametre kan overføres i registre.
  • Når der er flere parametre end registre, skal det gemmes i en blok, og blokadressen skal videregives som en parameter til et register.

Vigtige systemopkald, der bruges i OS

vente()

I nogle systemer skal en proces vente på, at en anden proces fuldfører sin eksekvering. Denne type situation opstår, når en overordnet proces opretter en underordnet proces, og udførelsen af ​​den overordnede proces forbliver suspenderet, indtil dens underordnede proces udføres.

Suspensionen af ​​den overordnede proces sker automatisk med et wait() systemkald. Når den underordnede proces afslutter eksekveringen, flytter kontrollen tilbage til den overordnede proces.

gaffel()

Processer bruger dette systemkald til at skabe processer, der er en kopi af dem selv. Ved hjælp af dette system opretter Call parent-processen en underordnet proces, og udførelsen af ​​den overordnede proces vil blive suspenderet, indtil den underordnede proces udføres.

exec()

Dette systemkald kører, når en eksekverbar fil i sammenhæng med en allerede kørende proces, der erstatter den ældre eksekverbare fil. Den oprindelige procesidentifikator forbliver dog, da en ny proces ikke bygges, men stak, data, hoved, data osv. erstattes af den nye proces.

dræbe()

Kill()-systemkaldet bruges af OS til at sende et termineringssignal til en proces, der opfordrer processen til at afslutte. Et dræbsystemkald betyder dog ikke nødvendigvis, at processen dræbes og kan have forskellige betydninger.

Afslut ()

Exit()-systemkaldet bruges til at afslutte programafviklingen. Specielt i multi-threaded-miljøet definerer dette kald, at trådudførelsen er fuldført. OS genindvinder ressourcer, der blev brugt af processen efter brugen af ​​exit()-systemkaldet.

Resumé

Kategorier Windows Unix
Proces kontrol CreateProcess()
ExitProcess()
WaitForSingleObject()
gaffel()
Afslut ()
vente()
Enhedsmanipulation SetConsoleMode()
ReadConsole()
WriteConsole()
loctl()
Læs()
skrive()
Fil manipulation CreateFile()
ReadFile()
WriteFile()
Luk Håndtag()
Åben()
Læs()
skrive()
tæt!)
Vedligeholdelse af information GetCurrentProcessID()
SetTimer()
Søvn()
blid()
alarm()
søvn()
Kommunikation CreatePipe()
CreateFileMapping()
MapViewOfFile()
Rør()
shm_open()
mmap()
Beskyttelse SetFileSecurity()
InitializeSecurityDescriptor()
SetSecurityDescriptorGroup ()
Chmod()
Umask()
Chown()