Besturingssysteem en hardware
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?
- AOmdat bij gebundeld schrijven de totale hoeveelheid weg te schrijven gegevens zelf afneemt
- BOmdat de vaste last per systeemaanroep wordt beperkt door het aantal aanroepen te verminderen
- 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.