ULE
Z Wikipedii
ULE – to nowoczesny planista, stworzony na potrzeby systemu FreeBSD, mający zastąpić dotychczasowy algorytm szeregowania, oparty na planiście systemu 4.3BSD. Jest to jeden z podprojektów SMPng.
Spis treści |
[edytuj] Historia
Prace nad planistą ULE[1] wymuszone zostały przez rozwój komputerów wieloprocesorowych oraz nieefektywność wykorzystywania wielu procesorów logicznych przez dotychczasowy algorytm szeregujący. Dotychczasowy planista (4BSD) nie umożliwiał rozkładania obciążenia na różne procesory (ang. load balancing), miał złożoność obliczeniową rzędu O(n) oraz nie był w stanie wykorzystać potencjału współczesnych maszyn wieloprocesorowych. Wszystkie te czynniki spowodowały rozpoczęcie prac przez Jeffa Robersona nad nowym planistą. Koncepcja nowego planisty nie była nowa. Systemy Linux[2] oraz Solaris w tym okresie miały już działające algorytmy szeregujące o złożoności obliczeniowej rzędu O(1), co było źródłem dodatkowej motywacji dla developerów systemu FreeBSD.
Nowy planista pojawił się w drzewie CVS systemu 23 stycznia 2003 roku. Od tego czasu prowadzone są ciągłe prace, mające na celu optymalne ustawienie parametrów pracy algorytmów, wchodzących w skład planisty. Do tej pory planista oznaczony jest jako eksperymentalny oraz przeznaczony do testów. Programiści systemu FreeBSD zalecają ostrożność przy wprowadzaniu go do środowisk produkcyjnych.
[edytuj] Informacje techniczne
[edytuj] Komputery wieloprocesorowe
Nowy planista oferuje m.in. obsługę komputerów wieloprocesorowych. Osiągnięte to zostało dzięki utworzeniu niezależnych kolejek procesów dla poszczególnych procesorów. Koncepcja ta została zaczerpnięta z jądra Linux. W przypadku nadmiernego obciążenia któregoś z procesorów planista automatycznie przenosi z jego kolejki procesy do kolejek innych procesorów, dzięki którym równoważy obciążenie procesorów systemu. Drugim mechanizmem jest wątek, który co pewien okres czasu ocenia obciążenie procesora. Kombinacja tych technik zapewnia maksymalne wykorzystanie dostępnych mocy obliczeniowych. Ponadto ULE ma na celu efektywne wykorzystanie procesorów wielordzeniowych, dzięki wykorzystaniu nowoczesnych technik, wprowadzonych do nowych układów.
[edytuj] Priorytety procesów
Zmieniło się także podejście do hierarchii procesów w systemie. Miało to na celu zwiększenie interaktywności nowego planisty. Dzięki temu szybciej obsługiwane będą procesy ograniczone przez wejście-wyjście niż procesy zużywające głównie moc obliczeniową procesora. Ponadto zadbano, aby nowy planista nie doprowadzał do głodzenia procesów o niskim priorytecie. Problem ten widoczny jest głównie w systemie Linux, który w obliczu dużej ilości procesów o wysokim priorytecie praktycznie nie udostępniał procesora procesom mniej ważnym.
[edytuj] Przyszłość
ULE zapewne stanie się niedługo domyślnym planistą w systemie FreeBSD. Możliwe, że nastąpi to już w wersji 7.1 tego systemu.
[edytuj] Zobacz też
Przypisy
- ↑ ULE: A modern scheduler for FreeBSD - Jeff Roberson
- ↑ Opis algorytmu szeregującego w systemie Linux - z dokumentacji źródeł systemu