Systeemoproep in besturingssysteem (Operating-systeem): Wat is, typen en voorbeelden
⚡ Slimme samenvatting
Een systeemoproep is de gecontroleerde interface die een proces gebruikt om kernelservices aan te vragen, zoals bestandstoegang, procesbeheer en apparaatcommunicatie, waarbij de CPU veilig wordt overgeschakeld van gebruikersmodus naar geprivilegieerde kernelmodus.

Wat is systeemoproep? Operating-systeem?
A systeemoproep is een mechanisme dat de interface biedt tussen een proces en het besturingssysteem. Het is een programmatische methode waarbij een computerprogramma een service aanvraagt van de kernel van het besturingssysteem.
Systeemoproepen bieden de services van het besturingssysteem aan de gebruikersprogramma's aan via API (Application Programming Interface). Systeemoproepen zijn de enige toegangspunten voor het kernelsysteem.
Systeemoproepen Operating-systeem
Voorbeeld van systeemoproep
Om bijvoorbeeld een programma te schrijven dat gegevens uit het ene bestand leest en naar een ander bestand kopieert, heeft het programma eerst de namen van de twee bestanden nodig: het invoerbestand en het uitvoerbestand.
In een interactief systeem vereist dit type programma-uitvoering enkele systeemoproepen van het besturingssysteem.
- De eerste stap is het weergeven van een instructiebericht op het scherm.
- De tweede stap is om via het toetsenbord de tekens te lezen die de twee bestanden definiëren.
Hoe systeemoproep werkt?
Hieronder volgen de stappen voor een systeemoproep in het besturingssysteem:
Archistructuur van de systeemoproep
Zoals u in het bovenstaande diagram van de systeemoproepen kunt zien:
Stap 1) De processen worden in gebruikersmodus uitgevoerd totdat een systeemoproep ze onderbreekt.
Stap 2) Daarna wordt de systeemoproep in kernelmodus uitgevoerd op basis van prioriteit.
Stap 3) Zodra de uitvoering van de systeemoproep is voltooid, keert de controle terug naar de gebruikersmodus.
Stap 4) De uitvoering van gebruikersprocessen wordt hervat, waarbij er geschakeld wordt tussen gebruikersmodus en kernelmodus zoals gevraagd.
Waarom heb je systeemoproepen nodig in OS?
De volgende situaties vereisen systeemaanroepen in het besturingssysteem:
- 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 een scanner of printer is een systeemoproep nodig.
Soorten systeemoproepen
Hieronder staan de vijf soorten systeemoproepen in het besturingssysteem:
- procescontrole en
- Bestandsbeheer
- Apparaatbeheer
- Informatie Onderhoud
- Communicatie
Soorten systeemoproepen in het besturingssysteem
procescontrole en
Deze systeemoproepen voeren taken uit zoals het aanmaken en beëindigen van processen.
Functies:
- Beëindigen en afbreken
- Laden en uitvoeren
- Maak proces en beëindig proces
- Wacht en Signal Evenementen
- 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 is verantwoordelijk voor de manipulatie van apparaten, zoals het lezen van apparaatbuffers, het schrijven naar apparaatbuffers, enzovoort.
Functies:
- Apparaat aanvragen en vrijgeven
- Apparaten logisch aansluiten of loskoppelen
- 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 type systeemoproepen wordt met name gebruikt voor communicatie tussen processen.
Functies:
- Communicatieverbindingen maken en verwijderen
- Berichten verzenden en ontvangen
- Help het besturingssysteem bij het overdragen van statusinformatie
- Externe apparaten koppelen of loskoppelen
Regels voor het doorgeven van parameters voor systeemaanroepen
Hieronder volgen de algemene regels voor het doorgeven van parameters aan de systeemoproep:
- Parameters moeten door het besturingssysteem op de stack worden geplaatst of eraf worden gehaald.
- Parameters kunnen in registers worden doorgegeven.
- Als er meer parameters dan registers zijn, moeten deze in een blok worden opgeslagen en moet het adres van het blok in een register worden doorgegeven.
Belangrijke systeemoproepen gebruikt in het besturingssysteem
wacht()
In sommige systemen moet een proces wachten tot een ander proces is voltooid. Dit gebeurt wanneer een ouderproces een kindproces aanmaakt en het ouderproces opgeschort blijft totdat het kindproces klaar is.
De ouder wordt automatisch opgeschort met een wait()-systeemoproep. Wanneer het kindproces de uitvoering beëindigt, gaat de controle terug naar de ouder.
vork()
Processen gebruiken deze systeemoproep om processen te creëren die een kopie van zichzelf zijn. Met behulp van fork() creëert een ouderproces een kindproces, en het ouderproces wordt opgeschort totdat het kindproces is uitgevoerd.
exec ()
Deze systeemoproep voert een uitvoerbaar bestand uit binnen een reeds actief proces, waarbij het oude proces wordt vervangen. De oorspronkelijke proces-ID blijft behouden, aangezien er geen nieuw proces wordt aangemaakt, maar de stack, data, heap, enzovoort, worden vervangen door het nieuwe proces.
doden()
De systeemoproep kill() wordt door het besturingssysteem gebruikt om een beëindigingssignaal naar een proces te sturen, waarmee het wordt aangespoord om af te sluiten. Een kill-systeemoproep betekent echter niet noodzakelijkerwijs dat het proces wordt beëindigd en kan verschillende betekenissen hebben.
Uitgang()
De systeemoproep exit() wordt gebruikt om de programma-uitvoering te beëindigen. Vooral in een multithreaded omgeving geeft deze oproep aan dat de uitvoering van de thread is voltooid. Het besturingssysteem geeft de door het proces gebruikte resources terug na de exit()-oproep.




