Wat is Systeemaanroep (system call)?

Mechanisme waarmee een applicatie het besturingssysteem vraagt om bijvoorbeeld bestanden te lezen of te schrijven of geheugen toe te wijzen. Met een speciale instructie wordt een exceptie opgewekt, naar de bevoorrechte modus geschakeld en de kernelcode aangeroepen.

Japanse benaming: システムコール

“Systeemaanroep (system call)” komt voor in 6 oefenvragen uit 2 onderwerpen, bijv. Besturingssysteem en hardware, Hardwarebeveiliging.

Vakgebied: Besturingssysteem en hardware

Nu oefenen: vragen over Systeemaanroep (system call)

Wat is de belangrijkste reden dat het sneller is om kleine gegevens eerst in een buffer in de gebruikersruimte te verzamelen en gebundeld weg te schrijven dan bij het byte voor byte wegschrijven telkens een systeemaanroep te doen?

  1. AOmdat bij gebundeld schrijven de totale hoeveelheid weg te schrijven gegevens zelf afneemt
  2. BOmdat de vaste last per systeemaanroep wordt beperkt door het aantal aanroepen te verminderen
  3. COmdat gegevens in de buffer kunnen worden bewaard zonder schijf te gebruiken
Antwoord en toelichting tonen

Antwoord: B. Omdat de vaste last per systeemaanroep wordt beperkt door het aantal aanroepen te verminderen

Bij een systeemaanroep zijn telkens nodig: omschakelen van gebruikersmodus naar bevoorrechte modus, registers opslaan, argumenten controleren en terugkeren, en deze vaste last is er zelfs als maar 1 byte wordt verwerkt. Bovendien raken door het betreden van de kernel de inhoud van cache en TLB verstoord. Als gegevens in een buffer worden verzameld en per enkele KB gebundeld worden geschreven, neemt het aantal systeemaanroepen sterk af en wordt het geheel sneller. De totale hoeveelheid weg te schrijven gegevens verandert niet en wordt uiteindelijk naar schijf geschreven.

“Systeemaanroep (system call)” in de toelichting

Vragen met “Systeemaanroep (system call)” (6)

  1. Wat is de belangrijkste reden dat het sneller is om kleine gegevens eerst in een buffer in de gebruikersruimte te verzamelen en gebundeld weg te schrijven dan bij het byte voor byte wegschrijven telkens een systeemaanroep te doen?
  2. Hoe heet het mechanisme waarmee een toepassing het besturingssysteem verzoekt bijvoorbeeld een bestand te lezen of te schrijven?
  3. Wat gebeurt er juist wanneer de laatste ecall-instructie van de bovenstaande RISC-V-code wordt uitgevoerd?
  4. In veel besturingssystemen wordt het kernelgebied toegewezen aan een deel (bijvoorbeeld het hoge bereik) van de adresruimte van elk proces, en wordt toegang vanuit de gebruikersmodus met de beveiligingsbit van de paginatabel verboden. Wat is het belangrijkste voordeel van deze indeling?
  5. Welke uitleg is juist over wat er gebeurt bij het lezen van de inhoud van een bestand met een mechanisme dat een bestand aan geheugen koppelt (zoals mmap)?
  6. Welke uitspraak over de gedachte achter KPTI (kernel page-table isolation), dat als softwaretegenmaatregel tegen Meltdown werd ingevoerd, is juist?

Verwante termen

Paginatabel Bevoorrechte modus (privileged mode) TLB (translation lookaside buffer) Numerieke apertuur (NA) Demand paging Via Interrupt KPTI Meltdown Apparaatstuurprogramma (device driver)

Naar de woordenlijst