Multicore und Synchronisation

Welche Aussage zum Snooping-Verfahren der Cache-Kohärenz ist richtig?

  1. ADas Betriebssystem prüft in festen Zeitabständen alle Caches und behebt Inkonsistenzen
  2. BDie Caches der Kerne überwachen Lese- und Schreibvorgänge anderer Kerne auf einem gemeinsamen Bus o. Ä. und ändern den Zustand ihrer eigenen Zeilen
  3. CDer Programmierer sendet bei jedem Schreiben den Wert von Hand an die anderen Kerne
Antwort und Erläuterung anzeigen

Antwort: B. Die Caches der Kerne überwachen Lese- und Schreibvorgänge anderer Kerne auf einem gemeinsamen Bus o. Ä. und ändern den Zustand ihrer eigenen Zeilen

Beim Snooping-Verfahren erreichen die Lese- und Schreibanforderungen der Kerne alle Caches, und jeder Cache prüft, ob er dieselbe Zeile besitzt, und macht sie ungültig oder liefert die Daten. Der Mechanismus ist einfach und eignet sich bei wenigen Kernen. Mit steigender Kernzahl wird jedoch die Kommunikation, die alle Anforderungen an alle Caches liefert, zu groß, weshalb in großen Systemen das Directory-Verfahren verwendet wird.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Multicore und Synchronisation

  1. Warum wird in Systemen mit vielen Kernen statt des Snooping-Verfahrens Kohärenz nach dem Directory-Verfahren verwendet?
  2. Kohärenzprotokolle gibt es als Invalidierungstyp und als Update-Typ. Was ist der treffendste Grund, warum viele CPUs den Invalidierungstyp verwenden?
  3. Welche Aussage zum in Multithread-Programmen auftretenden False Sharing ist richtig?
  4. In einem Array von Zählern je Thread wie „long cnt[8];“ tritt False Sharing auf. Welche Gegenmaßnahme ist am besten geeignet?
  5. Welche Aussage zu einem Data Race (Datenwettlauf) ist richtig?

Vergleiche zu diesem Thema