Compilers

Wat is het belangrijkste doel van instructieplanning (instruction scheduling) in een compiler?

  1. AHet aantal instructies hoe dan ook verminderen, ook als het resultaat van het programma verandert
  2. BInstructies herordenen zonder het resultaat te veranderen en zo wachttijden opvullen
  3. CDe uit te voeren instructies herordenen in de volgorde die de scheduler van het besturingssysteem heeft gekozen
Antwoord en toelichting tonen

Antwoord: B. Instructies herordenen zonder het resultaat te veranderen en zo wachttijden opvullen

Als het resultaat van een lees- of vermenigvuldigingsinstructie niet direct beschikbaar is, moet de CPU wachten wanneer de instructie die het resultaat gebruikt er direct op volgt. Instructieplanning herordent de instructies, binnen de grenzen van de dataafhankelijkheden en zonder het resultaat te veranderen, zodat onafhankelijke andere instructies ertussen komen en wachttijd nuttig wordt benut. Het effect is vooral groot bij CPU's die in volgorde uitvoeren. Transformaties die het resultaat veranderen zijn niet toegestaan, en de scheduler van het besturingssysteem beslist over het wisselen van processen, wat een ander mechanisme is.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Compilers

  1. Welk effect heeft het toepassen van tail call optimization op de laatste recursieve aanroep van de bovenstaande functie?
  2. Welk verschil tussen een compiler en een interpreter is juist?
  3. Welke uitspraak over een uitvoeringsomgeving die JIT-compilatie gebruikt is juist?
  4. Welke uitspraak over de basisopzet van LLVM is juist?
  5. In welke situatie wordt de instelling zonder optimalisatie (zoals -O0) bij de optie voor het optimalisatieniveau van een compiler vaak gebruikt?

Vergelijkingen bij dit onderwerp