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 operativsystemet. Det er en programmatisk metode, hvor et computerprogram anmoder om en tjeneste fra kernen af โโoperativsystemet.
System call tilbyder operativsystemets tjenester til brugerprogrammerne via API (Application Programming Interface). Systemkald er de eneste indgangspunkter for kernesystemet.

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:
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?
Fรธlgende 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
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 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 opgaven med enhedsmanipulation som lรฆsning fra enhedsbuffere, skrivning i enhedsbuffere 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 ud af stakken af โโoperativsystemet.
- 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() Opret filkortping() MapViewOfFile() |
Rรธr() shm_open() mmap() |
| Beskyttelse | SetFileSecurity() InitializeSecurityDescripteller() Indstil sikkerhedDescripteller Gruppe () |
Chmod() Umask() Chown() |

