Symmetrisches Multiprozessing
Symmetrisches Multiprozessing (SMP) ist eine Multiprozessor-Architektur, bei der die laufenden Prozesse auf alle Prozessoren verteilt werden können. Im Gegensatz zum asymmetrischen Multiprozessing, bei dem jede beteiligte CPU eine fest zugewiesene Aufgabe erhält (z.B. CPU0 führt Betriebssystemaufrufe aus, CPU1 führt Benutzerprozesse aus). Symmetrisches Multiprozessing ist heute (2003) die Standard-Architektur für Multiprozessor-Maschinen mit bis zu 16 CPUs, während asymmetrisches Multiprozessing praktisch nicht mehr zum Einsatz kommt. Die Möglichkeit, dass jede CPU jeden Prozess ausführen können muss, führt jedoch bei größeren Systemen dazu, dass der Speicherbus zum Performance Engpass wird. Mit jeder zusätzlichen CPU sinkt der relative Performancegewinn, da die Speichersubsysteme die Daten nicht mehr schnell genug liefern können um alle vorhandenen CPUs auszulasten.Ein weiteres Problem bei SMP ist das CPU Hopping, bei dem Prozesse ständig zwischen den einzelnen CPUs wechseln. Normalerweise wäre dies kein Problem, aber da in SMP Systemen häufig CPUs mit sehr großen und mehrfach gestaffelten Caches zum Einsatz kommen um die bereits geschilderte Auslastung des Speichersystems zu vermindern, führt der schnelle Wechsel der laufenden Prozesse zu einer weiteren Leistungsverminderung durch so genanntes Cache Trashing. Darunter versteht man den ständigen Wechsel der Cache Inhalte da unterschiedliche Prozesse in der Regel auf unterschiedliche Datenbereiche zugreifen. Man kann dem jedoch Effekt durch Zuweisen einer höheren Affinität der Prozesse zu der jeweils ausführenden CPU entgegen wirken.
Bei Weiterentwicklungen wie zum Beispiel der NUMA (Non Unified Memory Architecture) werden diese Probleme vermindert.






