next up previous contents
Next: Wywołania systemowe zwiazane z Up: Rozszerzenie dla obsługi wielu Previous: Funkcja reschedule_idle()   Spis rzeczy

Funkcja goodness()

Funkcji tej podaje się oprócz deksryptora procesu również identyfikator procesora, na którym chcemy uruchomić proces. Dopiero w przypadku wieloprocesorowości jest to dopiero istotne. Funcja zwraca więc w istocie priorytet danego procesu na danym procesorze. Funkcja ta w systemie wieloprocesorowym daje wyższy o PROC_CHANGE_PENALTY(=15) priorytet procesom, które chcemy uruchomić na tym samym procesorze, na którym działały poprzednio.

if (p->processor == this_cpu)
    weight += PROC_CHANGE_PENALTY;
Nagradzanie takie tłumaczy się sporym prawdopodobieństwem, że nie trzeba będzie odświeżać pamięci cache procesora.



Ignacy Kowalczyk 2001-11-16