Proces szeregujący (ang. scheduler) to część jądra zajmująca się przydzielaniem procesom procesora.
Przed procesem szeregującym stawiamy wiele często wzajemnie sprzecznych wymagań:
- Niewielki narzut administracyjny ze strony schedulera.
- Jak najlepsza obsługa procesów interaktywnych - objawia się to krótkim czasem reakcji systemu na nasze polecenia
- Możliwie rzadkie przełączanie procesów - minimalizacja kosztu przełączania kontekstu.
- Skalowalność zachowania algorytmu z punktu widzenia użytkownika. Użytkownik może regulować
które zadania są bardziej a które mniej ważne.
- Jak najlepsza obsługa różnych klas procesów - w tym procesów czasu rzeczywistego.
- Obsługa systemów wieloprocesorowych - dobre równoważenie obciążenia na wiele procesorów, procesy nie powinny
zbyt często zmieniać procesora.
- Nie możne dopuszczać do głodzenia procesów.
- Odporność na duże obciążenia systemu. Scheduler powinien zachowywać swoje dobre własności nawet
przy dużych obciążeniach systemu.
Wraz z rozwojem systemów komputerowych zmienia się waga różnych wymagań (np. coraz ważniejsza jest dobra
obsługa wieloprocesorowości). Jest to główna motywacja do opracowywania i wdrażania nowych rozwiązań.