Gdyby cała kontrola nad procesem przydzielania procesora była pozostawiona Schedulerowi
w takiej postaci jak do tej pory przedstawiliśmy, to łatwo zauważyć, że będzie dochodzić
do zagłodzeń. W NT zagłodzeniu wątków dynamicznych między sobą przeciwdziała
Menadżer Balansu. Uruchamia się on co około sekundę, jego głównym zadaniem jest optymalizacja
wykorzystania pamięci ale przy okazji wywołuje funkcję ScanReadyQueue
, która, zaczynając
od najwyższego priorytetu, przegląda Listę Dyspozytora w poszukiwaniu wątku, który nie
wykonywał się dłużej niż 3 sekundy. Jeśli taki znajdzie to zwiększa mu priorytet do 15,
wydłuża kwant czasu dwukrotnie i wywołuje ReadyThread
z tym wątkiem jako parametr.
Po jednym wykonaniu kwantu czasu na procesorze, wartości te wracają do poprzednich.