Planowanie systemu operacyjnego to proces kontrolowania i ustalania priorytetów wiadomości wysyłanych do procesora. Zadanie to wykonuje wewnętrzny program systemu operacyjnego, zwany harmonogramem. Celem jest utrzymanie stałego nakładu pracy dla procesora, eliminowanie wzlotów i upadków obciążenia oraz upewnienie się, że każdy proces jest ukończony w rozsądnym czasie. Chociaż planowanie jest ważne dla wszystkich systemów, jest szczególnie ważne w systemie czasu rzeczywistego.
Ponieważ prawie każda operacja na komputerze wymaga co najmniej niewielkiej ilości czasu procesora, procesor może być głównym źródłem spowolnień i wąskich gardeł. Aby zmniejszyć obciążenie procesora i zapewnić terminowe wykonanie zadań, większość systemów operacyjnych korzysta z jakiejś formy planowania zadań. Proces planowania systemu operacyjnego różni się w zależności od systemu, ale zwykle należą one do znanych kategorii.
Planowanie zazwyczaj dzieli się na trzy części: planowanie długo-, średnio- i krótkoterminowe. Nie każdy system operacyjny w pełni wykorzystuje każdy typ — średnio- i długoterminowe są często łączone — ale będą korzystać z ich kombinacji. Każdy rodzaj planowania zapewnia systemowi nieco inne korzyści.
Planowanie długoterminowe polega na dopuszczeniu programów do procesu planowania. Kiedy rozpoczyna się nowy program, długoterminowy planista określa, czy jest wystarczająco dużo miejsca dla nowego uczestnika. Jeśli tak nie jest, harmonogram opóźnia aktywację programu do czasu, aż będzie wystarczająca ilość miejsca.
Planista średniookresowy decyduje, które procesy były bezczynne, a które aktywne. Pozostawia aktywne procesy w spokoju i zapisuje nieaktywne na dysku twardym. To zwalnia pamięć dla innych programów, które mogą przejść przez harmonogram długoterminowy. Gdy połączą się średnio- i długoterminowe programy planujące, zamiast opóźniać aktywację nowego procesu, program planujący po prostu zamienia go w pamięć masową.
Harmonogram krótkoterminowy to część, która współpracuje bezpośrednio z procesorem. Ta część aktywuje procesy, ustala priorytety i nadzoruje obciążenie procesora. Harmonogram krótkoterminowy nieustannie stara się przewidzieć potrzeby komputera, aby procesor działał płynnie.
W większości przypadków planowanie systemu operacyjnego jest sposobem na wydajniejsze działanie komputera, ale w systemie operacyjnym czasu rzeczywistego jest to niezbędne do osiągnięcia swojego celu. System czasu rzeczywistego musi wykonywać procesy w określonym czasie, a jeśli te procesy opóźniają się, traci się ich cel. Te ważne programy wymagają bardzo specyficznego planowania systemu, aby upewnić się, że informacje i odpowiedzi znajdują się tam, gdzie powinny i kiedy muszą.