Soft Affinity
# Soft Affinity

Soft Affinity bedeutet im Kontext Scheduling der Betriebssystemlehre und Informatik, dass bestimmte Threads bevorzugt auf bestimmten CPUs laufen können, auf denen sie zuvor schon gelaufen sind. Das hilft nur, wenn die CPU frei ist, sonst wird eine andere CPU ausgewählt.
Der Vorteil und Sinn dieses Verfahrens besteht darin, dass mit relativ hoher Wahrscheinlichkeit noch Daten des Threads im CPU-Kontext (Cache) gespeichert sind und so beim Kontext-Switch einige Ressourcen eingespart werden können.
Hierbei ist zu beachten, dass die Priorität eines Threads Vorrang vor der Soft Affinity hat. (Beispiel: Thread 1 hat eine Soft Affinity zu CPU 1, CPU 2 ist belegt von Thread 2, Thread 3 hat eine höhere Priorität als Thread 1, muss also vorher Thread 3 abgearbeitet werden, dann wird Thread 1 wieder auf CPU 1 laufen oder auch nicht, obwohl keine Soft Affinity für Thread 3 besteht)