SMPng () – jeden z podprojektów systemu FreeBSD, mający na celu umożliwienie działania tego systemu na komputerach wieloprocesorowych.
Historia SMP było obecne w systemie FreeBSD już od wersji 3Projekt SMP w systemie FreeBSD. Jednak wsparcie dla maszyn wieloprocesorowych w tamtym okresie było bardzo ograniczone. Programy użytkownika mogły działać na różnych procesorach, natomiast jądro, pozbawione wielobieżności mogło być wykonywane tylko na jednym procesorze. Problemem był także mechanizm blokowania wątków, oparty na jednej dużej blokadzie jądra. Prace nad wersją 5. systemu miały na celu umożliwić działanie jądra na więcej niż jednym procesorze oraz zwiększenie drobnoziarnistości blokad. Dzięki temu jądro wzbogaciło się w szereg mniejszych blokad, dotyczących tylko fragmentów jego kodu (np. pojedynczych podsystemów)Introduction to Multithreading and Multiprocessingin the FreeBSD SMPng Network Stack - prezentacja przygotowana na EuroBSDCon 2005 przez Roberta Watsona. Projekt nadal jest w fazie rozwoju, lecz w tej chwili nie ma przeciwwskazań do stosowania go na maszynach wieloprocesorowych. Podobny proces przechodzi jądro systemu Linux.
Szerszy opis W ramach SMPng prowadzone są modyfikacje wielu elementów jądra systemu FreeBSD. Prace muszą obejmować m.in.: sterowniki urządzeń systemy plików podsystem sieciowy Oprócz zmian polegających na dbaniu o odpowiednią synchronizację jądra za pomocą blokad trzeba było także wprowadzić nowego planistę. W tym celu zapoczątkowano projekt ULE.
Zobacz też FreeBSD Wieloprocesorowość symetryczna ULE
Przypisy
Kategoria:FreeBSD