Betriebssystem und Hardware

Welcher Vorteil ist richtig, wenn jedem TLB-Eintrag eine ASID (Address Space Identifier) hinzugefügt wird?

  1. ABeim Wechsel muss der TLB nicht komplett geleert werden, da Umsetzungen unterschieden werden können
  2. BDer von einem Prozess nutzbare Bereich virtueller Adressen kann verdoppelt werden
  3. CSeitentabellen werden überflüssig, und alle Umsetzungen können allein im TLB erfolgen
Antwort und Erläuterung anzeigen

Antwort: A. Beim Wechsel muss der TLB nicht komplett geleert werden, da Umsetzungen unterschieden werden können

Ohne ASID zeigt dieselbe virtuelle Adresse in verschiedenen Prozessen auf verschiedene physische Adressen, sodass der TLB bei jedem Prozesswechsel geleert werden muss und nach dem Wechsel TLB-Misses folgen. Mit einer ASID in jedem Eintrag lässt sich unterscheiden, zu welchem Prozess die Umsetzung gehört; der TLB kann erhalten bleiben und bei Rückkehr zum ursprünglichen Prozess wiederverwendet werden. Der Bereich virtueller Adressen ändert sich nicht, und Seitentabellen bleiben für Umsetzungen, die nicht in den TLB passen, weiterhin nötig.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Betriebssystem und Hardware

  1. 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?
  2. 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?
  3. In welchem Fall ist Polling, bei dem die CPU den Gerätezustand ohne Interrupts wiederholt abfragt, vorteilhaft?
  4. 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?
  5. Welche Hauptaufgabe der IOMMU ist richtig?

Vergleiche zu diesem Thema