Systeemoproep in besturingssysteem (besturingssysteem): wat is, typen en voorbeelden

Wat is systeemoproep in het besturingssysteem?

A systeemoproep is een mechanisme dat de interface vormt tussen een proces en het besturingssysteem. Het is een programmatische methode waarbij een computerprogramma een service aanvraagt ​​bij de kernel van het besturingssysteem.

System call biedt de diensten van het besturingssysteem aan de gebruikersprogramma's via API (Application Programming Interface). Systeemaanroepen zijn de enige toegangspunten voor het kernelsysteem.

Systeemaanroepen in het besturingssysteem
Systeemaanroepen in het besturingssysteem

Voorbeeld van systeemoproep

Als we bijvoorbeeld een programmacode moeten schrijven om gegevens uit het ene bestand te lezen, kopieert u die gegevens naar een ander bestand. De eerste informatie die het programma nodig heeft, is de naam van de twee bestanden, de invoer- en uitvoerbestanden.

In een interactief systeem vereist dit type programma-uitvoering enkele systeemaanroepen door het besturingssysteem.

  • De eerste oproep is om een ​​promptbericht op het scherm te schrijven
  • Ten tweede, om vanaf het toetsenbord de tekens te lezen die de twee bestanden definiëren.

Hoe systeemoproep werkt?

Hier zijn de stappen voor systeemoproep in besturingssysteem:

Systeemoproep werkt

Architecture of the System Call

Architecture of the System Call

Zoals u kunt zien in het hierboven gegeven voorbeelddiagram van de Systeemoproep.

Stap 1) De processen die worden uitgevoerd in de gebruikersmodus tot het moment dat een systeemaanroep deze onderbreekt.

Stap 2) Daarna wordt de systeemaanroep op prioriteitsbasis in de kernelmodus uitgevoerd.

Stap 3) Zodra de uitvoering van de systeemoproep voorbij is, keert de besturing terug naar de gebruikersmodus.

Stap 4) De uitvoering van gebruikersprocessen is hervat in Kernel-modus.

Waarom heb je systeemoproepen nodig in OS?

Following zijn situaties waarin systeemaanroepen in het besturingssysteem nodig zijn:

  • Voor het lezen en schrijven van bestanden zijn systeemaanroepen nodig.
  • Als een bestandssysteem bestanden wil maken of verwijderen, zijn systeemaanroepen vereist.
  • Systeemaanroepen worden gebruikt voor het creëren en beheren van nieuwe processen.
  • Netwerkverbindingen hebben systeemoproepen nodig voor het verzenden en ontvangen van pakketten.
  • Voor toegang tot hardwareapparaten zoals scanner en printer is een systeemoproep nodig.

Soorten systeemoproepen

Hier zijn de vijf soorten systeemoproepen in het besturingssysteem:

  • procescontrole en
  • Bestandsbeheer
  • Apparaatbeheer
  • Informatie Onderhoud
  • Communicatie
Soorten systeemoproepen

Typen systeemaanroepen in OS

procescontrole en

Deze systeemaanroepen voeren de taak uit van procescreatie, procesbeëindiging, enz.

Functies:

  • Beëindigen en afbreken
  • Laden en uitvoeren
  • Maak proces en beëindig proces
  • Wacht en signaalgebeurtenis
  • Geheugen toewijzen en vrijmaken

Bestandsbeheer

Aanroepen van bestandsbeheersystemen behandelen taken voor bestandsmanipulatie, zoals het maken van een bestand, lezen en schrijven, enz.

Functies:

  • Maak een bestand
  • Verwijder bestand
  • Bestand openen en sluiten
  • Lezen, schrijven en verplaatsen
  • Bestandskenmerken ophalen en instellen

Apparaatbeheer

Apparaatbeheer doet het werk van apparaatmanipulatie, zoals lezen van apparaatbuffers, schrijven naar apparaatbuffers, enz.

Functies:

  • Apparaat aanvragen en vrijgeven
  • Apparaten logisch koppelen/ontkoppelen
  • Apparaatkenmerken ophalen en instellen

Informatie Onderhoud

Het behandelt informatie en de overdracht ervan tussen het besturingssysteem en het gebruikersprogramma.

Functies:

  • Tijd en datum ophalen of instellen
  • Verkrijg proces- en apparaatkenmerken

Communicatie

Dit soort systeemoproepen worden speciaal gebruikt voor communicatie tussen processen.

Functies:

  • Maak, verwijder communicatieverbindingen
  • Bericht verzenden, ontvangen
  • Help het besturingssysteem om statusinformatie over te dragen
  • Externe apparaten koppelen of loskoppelen

Regels voor het doorgeven van parameters voor systeemaanroepen

Hier volgen algemene algemene regels voor het doorgeven van parameters aan de systeemoproep:

  • Parameters moeten door het besturingssysteem op de stapel worden geduwd of van de stapel worden verwijderd.
  • Parameters kunnen in registers worden doorgegeven.
  • Als er meer parameters dan registers zijn, moet deze in een blok worden opgeslagen en moet het blokadres als parameter aan een register worden doorgegeven.

Belangrijke systeemoproepen gebruikt in het besturingssysteem

wacht()

In sommige systemen moet een proces wachten totdat een ander proces zijn uitvoering heeft voltooid. Dit type situatie doet zich voor wanneer een ouderproces een onderliggend proces creëert, en de uitvoering van het bovenliggende proces opgeschort blijft totdat het onderliggende proces wordt uitgevoerd.

De opschorting van het bovenliggende proces vindt automatisch plaats met een wait() systeemaanroep. Wanneer de uitvoering van het onderliggende proces eindigt, gaat de besturing terug naar het bovenliggende proces.

vork()

Processen gebruiken deze systeemaanroep om processen te maken die een kopie van zichzelf zijn. Met behulp van dit systeem creëert het ouderproces Call een kindproces, en de uitvoering van het ouderproces wordt opgeschort totdat het kindproces wordt uitgevoerd.

exec ()

Deze systeemaanroep wordt uitgevoerd wanneer een uitvoerbaar bestand in de context van een reeds actief proces het oudere uitvoerbare bestand vervangt. De oorspronkelijke procesidentificatie blijft echter behouden omdat er geen nieuw proces wordt gebouwd, maar stack, data, head, data, etc. worden vervangen door het nieuwe proces.

doden()

De systeemaanroep kill() wordt door het besturingssysteem gebruikt om een ​​beëindigingssignaal naar een proces te sturen dat ertoe aanzet dat het proces wordt afgesloten. Een kill-systeemaanroep betekent echter niet noodzakelijkerwijs het beëindigen van het proces en kan verschillende betekenissen hebben.

Uitgang()

De systeemaanroep exit() wordt gebruikt om de uitvoering van het programma te beëindigen. Vooral in de multi-threaded omgeving definieert deze aanroep dat de threaduitvoering voltooid is. Het besturingssysteem claimt bronnen die door het proces zijn gebruikt na het gebruik van de systeemaanroep exit().

Samengevat

Categorieën Windows Unix
Procesregeling CreateProces()
ExitProces()
WaitForSingleObject()
vork()
Uitgang()
wacht()
Manipulatie van apparaten SetConsoleMode()
LeesConsole()
SchrijfConsole()
loct()
lezen()
schrijven()
Bestandsmanipulatie Bestand maken()
LeesBestand()
SchrijfBestand()
SluitHandvat()
Open()
Lezen()
schrijven()
dichtbij!)
Onderhoud van informatie GetCurrentProcessID()
SetTimer()
Slaap()
getid()
alarm()
slaap()
Communicatie CreatePipe()
CreateFileMapping()
MapViewOfFile()
Pijp()
shm_open()
mmap()
Bescherming SetFileSecurity()
InitializeSecurityDescriptor()
SetSecurityDescriptorGroep ()
Chmod()
Umask()
Chown()