Obsługa NUMA

Wcześniej: SMP, czyli Symmetric Multi-Processing
Teraz: NUMA, czyli Non-Uniform Memory Access
Skutki:
  1. NUMA jest znacznie lepiej skalowalna na systemy wieloprocesorowe
  2. taki system może mieć wiele węzłów zawierających procesor, pamięć ram, cache itp.
    smp
    numa
    SMPNUMA
  3. dzieki temu wąskie gardło jakim był dostęp do pamięci wspólnej jest likwidowane, pomijając oczywiście sytuację, w której jeden procesor chce mieć dostęp do informacji zapisanej w pamięci innego. jednak te sytuacje są na tyle rzadkie, że numa uzyskuje dzięki temu podziałowi znaczną przewagę w czasie dostępu do pamięci nad smp
  4. nowy scheduler potrafi optymalizować zużycie zasobów lokalnych, dzięki czemu minimalizuje zużycie szyn pośredniczących
  5. VM, czyli virtual memory - struktury i makra pozwalające na zapamiętanie i umiejętne używanie takiej podzielonej pamięci cache. to znaczy żeby procesor maksymalnie wykorzystywał swoją pamięć cache i do minimum ograniczył zużycie pamięci cache nie-lokalnej.
  6. system też pilnuje (o ile to możliwe), aby dany proces wykonywał się stale na tym samym procesorze. dzięki temu będzie on mógł korzystać z tej samej pamięci cache. tak więc to co w smp nie było istotne (wykonując sie na różnych procesorach proces miał taki sam dostęp do cachu) zaczyna być istotne w numie i to też jest dodatkowe zadanie dla schedulera