ULE
ULE – planista, stworzony na potrzeby systemu FreeBSD, który zastąpił poprzedni algorytm szeregowania, oparty na planiście systemu 4.3BSD. Jest to jeden z podprojektów SMPng.
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 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 programistó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.
Informacje techniczne
Nowy planista dla systemu FreeBSD łączy w sobie znane wcześniej z innych systemów idee, a także wprowadza nowe ulepszenia, mające podnieść wydajność na systemach wieloprocesorowych. Oto niektóre z nich:
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[2]. 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 czas 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.
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.
Wykorzystanie wielordzeniowości procesora
Nowy planista potrafi lepiej wykorzystywać fakt obecności więcej niż jednego rdzenia w obrębie pojedynczego procesora. Cecha ta powoduje, że planista mając na uwadze wspólny cache dla wszystkich rdzeni może przenosić procesy między kolejkami dla poszczególnych rdzeni w obrębie jednego procesora, dzięki czemu nie zaburza on jego pamięci podręcznej.
Przyszłość
ULE stał się domyślnym planistą w systemie FreeBSD począwszy od wersji 7.1[3].
Zobacz też
Przypisy
- ↑ ULE: A modern scheduler for FreeBSD - Jeff Roberson
- ↑ Strona manuala dla sched_ule.
- ↑ FreeBSD 7.1-RELEASE Release Announcement. [dostęp 2009-04-04]. [zarchiwizowane z tego adresu (2012-03-28)].
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.