Betriebssystem und Hardware

Was ist der Hauptgrund dafür, dass ein Prozess-Kontextwechsel tatsächlich zu einem größeren Leistungsverlust führen kann als die Zeit für Sichern und Wiederherstellen der Register?

  1. AWeil bei jedem Wechsel die Taktfrequenz der CPU sinkt
  2. BWeil bei jedem Wechsel das Programm neu von der Festplatte gelesen wird
  3. CWeil nach dem Wechsel Cache- und TLB-Misses zunehmen
Antwort und Erläuterung anzeigen

Antwort: C. Weil nach dem Wechsel Cache- und TLB-Misses zunehmen

Sichern und Wiederherstellen der Register selbst dauert nur kurz, doch für den neu geschalteten Prozess enthalten Cache und TLB Inhalte des vorherigen Prozesses, und es kommt zu Misses, bis die benötigten Daten und Umsetzungen neu geladen sind. Bei CPUs ohne ASID muss beim Wechsel des Adressraums außerdem der TLB geleert werden. Dieser indirekte Aufwand kann größer sein als die direkte Wechselzeit. Der Takt sinkt nicht, und das Programm wird nicht von der Festplatte neu gelesen.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Betriebssystem und Hardware

  1. Welcher Vorteil ist richtig, wenn jedem TLB-Eintrag eine ASID (Address Space Identifier) hinzugefügt wird?
  2. Durch welchen Mechanismus kann das Betriebssystem auch von Programmen, die die CPU nicht von selbst abgeben, in festen Abständen die CPU zurückholen und auf andere Prozesse umschalten?
  3. Warum wird beim Lesen eines Statusregisters eines Geräts per Memory-Mapped I/O wie oben volatile angegeben und der Bereich als nicht gecacht konfiguriert?
  4. In welchem Fall ist Polling, bei dem die CPU den Gerätezustand ohne Interrupts wiederholt abfragt, vorteilhaft?
  5. Was muss bei einem System, in dem die Hardware die Cache-Kohärenz nicht gewährleistet (nicht kohärent), vor dem Lesen von per DMA vom Gerät in den Hauptspeicher geschriebenen Daten durch die CPU von der Software erledigt werden?

Vergleiche zu diesem Thema