Obsługa NUMA i HyperThreading

Jądro 2.6 jest kolejnym krokiem w stronę zwiększenia wydajności coraz większych serwerów wieloprocesorowych. Dużą zmianą w jądrze 2.6 jest wsparcie dla serwerów NUMA (Non-Uniform Memory Access). NUMA jest krokiem ponad SMP (Symmetric Multiprocessing), której wadą jest jedna pula pamięci współdzielona przez wszystkie procesory, co w konsekwencji staje się wąskim gardłem systemu. NUMA reprezentuje inne podejście do sprawy. Część pamięci jest bliżej a część dalej, oczywiście od odległości zależy czas dostępu do pamięci. Najłatwiej architekturę NUMA można sobie wyobrazić jako sieć węzłów komunikujących się ze sobą.

W węźle: Poza węzłem: Zmiany dla NUMA: Wprowadzono jeszcze wiele zmian aby Linux mógł wspierać nowoczesne architektury. W tym kierunku postępuje szybki rozwój Linux'a na pewno zostanie w najbliższym czasie wprowadzonych wiele ulepszeń.

Hyperthreading

Hiperwątkowość jest głównym udogodnieniem Linux'a 2.6 zarówno dla super serwerów jak i komputerów domowych. Polega na symulowaniu dwóch lub więcej procesorów wirtualnych na jednym fizycznym (na poziomie sprzętowym). W wielu przypadkach wpływa na zwiększenie wydajności, ale przy okazji komplikuje pracę scheduler'a i inne rzeczy. Linux 2.6 potrafi zoptymalizować rozdzielanie zadań pomiędzy wirtualne procesory wykorzystując wsparcie sprzętowe.

Hiperwątkowość pojawiła się już w Windows 2000 Serwer. Możliwe było wykrycie dodatkowych procesorów, jednak na każdy była potrzebna dodatkowa licencja. W pełni mechanizm hiperwątkowości został zaimplementowany w Windows XP


Literatura:


Powrót

Autor: Mariusz Zawadzki, mz209441@zodiac.mimuw.edu.pl