Compiler

Was ist das Hauptziel der Befehlsplanung (Instruction Scheduling) des Compilers?

  1. ADie Zahl der Befehle unabhängig von Änderungen des Programmergebnisses so weit wie möglich zu verringern
  2. BBefehle ohne Änderung des Ergebnisses umzuordnen und Wartezeiten aufzufüllen
  3. CDie auszuführenden Befehle in der vom Scheduler des Betriebssystems gewählten Reihenfolge anzuordnen
Antwort und Erläuterung anzeigen

Antwort: B. Befehle ohne Änderung des Ergebnisses umzuordnen und Wartezeiten aufzufüllen

Ist das Ergebnis eines Ladebefehls oder einer Multiplikation nicht sofort verfügbar, muss die CPU warten, wenn der verwendende Befehl direkt folgt. Die Befehlsplanung ordnet die Befehle so um, dass unabhängige andere Befehle dazwischen eingefügt werden, ohne die Datenabhängigkeiten zu verletzen und das Ergebnis zu ändern, und nutzt so die Wartezeit. Besonders groß ist die Wirkung bei CPUs, die in der Programmreihenfolge ausführen (In-Order). Transformationen, die das Ergebnis ändern, sind unzulässig, und der Scheduler des Betriebssystems, der den Prozesswechsel bestimmt, ist ein anderer Mechanismus.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Compiler

  1. Welche Wirkung hat es, wenn auf den letzten rekursiven Aufruf der obigen Funktion die Tail-Call-Optimierung angewendet wird?
  2. Welche Aussage zum Unterschied zwischen Compiler und Interpreter ist richtig?
  3. Welche Eigenschaft einer Laufzeitumgebung mit JIT-Kompilierung ist richtig?
  4. Welche Beschreibung des grundlegenden Aufbaus von LLVM ist richtig?
  5. In welcher Situation wird bei den Optionen zur Wahl der Optimierungsstufe häufig die Einstellung ohne Optimierung (z. B. -O0) verwendet?

Vergleiche zu diesem Thema