Besturingssysteem en hardware

Wat is de belangrijkste reden dat een contextwisseling in de praktijk soms een grotere prestatiedaling veroorzaakt dan de tijd die het opslaan en herstellen van registers kost?

  1. AOmdat bij elke wisseling de kloksnelheid van de CPU daalt
  2. BOmdat het programma bij elke wisseling opnieuw van schijf wordt ingelezen
  3. COmdat na de wisseling het aantal cache- en TLB-misses toeneemt
Antwoord en toelichting tonen

Antwoord: C. Omdat na de wisseling het aantal cache- en TLB-misses toeneemt

Het opslaan en herstellen van registers zelf kost weinig tijd, maar voor het proces waarnaar is overgeschakeld bevatten cache en TLB gegevens van het vorige proces, zodat misses doorgaan tot benodigde gegevens en vertalingen opnieuw zijn ingelezen. Bij CPU's zonder ASID moet bij het omschakelen van adresruimte ook de TLB worden geleegd. Deze indirecte kosten kunnen groter zijn dan de directe wisseltijd. De klok daalt niet en het programma wordt niet opnieuw van schijf gelezen.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Besturingssysteem en hardware

  1. Welk voordeel is juist van het toevoegen van een ASID (address space identifier) aan elke TLB-ingang?
  2. Door welk mechanisme kan het besturingssysteem op vaste tijden de CPU terugnemen van een programma dat de CPU niet uit zichzelf afstaat, om naar een ander proces over te schakelen?
  3. Waarom wordt, wanneer zoals hierboven het statusregister van een apparaat via memory-mapped I/O wordt gelezen, volatile gebruikt en wordt dat gebied ingesteld om niet te worden gecachet?
  4. In welk geval is polling, waarbij de CPU de status van een apparaat herhaaldelijk controleert zonder interrupts, voordeliger?
  5. Welke bewerking moet de software uitvoeren voordat de CPU gegevens leest die een apparaat via DMA naar het hoofdgeheugen heeft geschreven, in een systeem waarin hardware de cache niet coherent houdt (niet-coherent)?

Vergelijkingen bij dit onderwerp