Multicore und Synchronisation
Was geschieht bei einem Kohärenzprotokoll vom Invalidierungstyp, wenn ein Kern in eine Zeile im Zustand Shared (S) schreibt?
- ADie Kopien anderer Kerne bleiben unverändert, und nur die eigene Zeile wird geändert
- BDie Kopien derselben Zeile bei anderen Kernen werden ungültig gemacht, dann wird die eigene Zeile in den M-Zustand versetzt und beschrieben
- CDie Caches aller Kerne werden geleert, bevor geschrieben wird
Antwort und Erläuterung anzeigen
Antwort: B. Die Kopien derselben Zeile bei anderen Kernen werden ungültig gemacht, dann wird die eigene Zeile in den M-Zustand versetzt und beschrieben
Der S-Zustand bedeutet, dass möglicherweise auch andere Kerne dieselbe Zeile besitzen; würde direkt geschrieben, wären die anderen Kopien veraltet. Daher wird eine Invalidierungsanforderung gesendet, die Kopien anderer Kerne gehen in den I-Zustand, und dann wird die eigene Zeile in den M-Zustand versetzt und beschrieben. Liest ein anderer Kern diese Daten später, kommt es zu einem Miss, und der aktuelle Wert wird neu geholt. Viele CPUs verwenden diesen Invalidierungstyp.