Betriebssystem und Hardware

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?

  1. ADie Taktfrequenz der CPU vorübergehend senken
  2. BDen Cache-Inhalt des betreffenden Bereichs ungültig machen, sodass aus dem Hauptspeicher neu gelesen wird
  3. CDen gesamten Cache-Inhalt in den Hauptspeicher zurückschreiben und anschließend das per DMA gelieferte Ergebnis verwerfen
Antwort und Erläuterung anzeigen

Antwort: B. Den Cache-Inhalt des betreffenden Bereichs ungültig machen, sodass aus dem Hauptspeicher neu gelesen wird

DMA überträgt Daten ohne Umweg über die CPU zwischen Gerät und Hauptspeicher; in Systemen, in denen die Hardware keine Kohärenz gewährleistet, können im CPU-Cache daher noch veraltete Daten dieses Bereichs liegen. Würde man direkt lesen, bekäme man den alten Wert statt der per DMA gelieferten neuen Daten. Deshalb macht der Treiber vor dem Lesen den Cache dieses Bereichs ungültig, damit der neue Wert aus dem Hauptspeicher gelesen wird. Umgekehrt werden an das Gerät zu sendende Daten vor dem DMA-Start aus dem Cache zurückgeschrieben.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Betriebssystem und Hardware

  1. Welche Hauptaufgabe der IOMMU ist richtig?
  2. Welche Aufgabe eines Gerätetreibers ist richtig?
  3. Was ist der Hauptgrund dafür, dass in üblichen Betriebssystemen Anwendungen Geräteregister nicht direkt lesen und schreiben können?
  4. Wie heißt die Software, die auf einem Computer mehrere Betriebssysteme gleichzeitig als jeweils unabhängige virtuelle Maschinen ausführt?
  5. Welche Aussage zu den Typen von Hypervisoren ist richtig?

Vergleiche zu diesem Thema