Planowanie procesora (lub Planowanie procesora) określa, które procesy są przypisywane i usuwane z procesora, na podstawie modeli planowania, takich jak Dotyczący pierwokupu i Harmonogram nieprewencyjny (znany również jako Planowanie kooperacyjne).
Starsze systemy mogą działać w prostych niezależnych trybach, ale przy rosnącym zapotrzebowaniu na elastyczne, elastyczne systemy, a także wirtualizację, wydajne zarządzanie wieloma przetwarzaniami zapewnia szybką odpowiedź na wszystkie żądania przetwarzania zadań.
Jednostki planowania są często nazywane zadanie a zadaniem Harmonogramu jest uruchamianie i zarządzanie tymi zadaniami w razie potrzeby; program planujący wybiera zadanie do usunięcia i przypisane do procesora w celu przetworzenia, zgodnie z zastosowanym modelem planowania.
Program planujący musi uruchomić uczciwy i wydajny proces wyboru, uwzględniając zmienne, dynamiczne żądania przetwarzania i maksymalnie wykorzystując cykle procesora.
Podczas przetwarzania zadania mogą znajdować się w dwóch stanach:
Gdy procesor jest bezczynny, program planujący odczytuje Gotowa kolejka, i wybiera następne zadanie do uruchomienia. Więc to jest Dyspozytor daje to wybranemu zadaniu kontrolę nad procesorem, więc musi być szybki! Każdy czas zajęty przez Dyspozytora jest znany jako Opóźnienie wysyłki.
Istnieją różne struktury i parametry niestandardowe do zdefiniowania Gotowa kolejka, a także kilka metod, które można wykorzystać do zarządzania złożonością procesu planowania.
Ogólnie chodzi o optymalizację i maksymalizację wykorzystania procesora, przepustowości itp.
Harmonogram musi podjąć decyzję na jednym z następujących etapów:
Nowe zadanie należy wybrać, jeśli zdarzy się etap 1 lub 4, aby zapewnić pełne wykorzystanie procesora, a zarówno na etapie 2, jak i 3 zadanie może być kontynuowane lub wybrane jest nowe.
Po zrozumieniu, w jaki sposób przetwarzane jest zadanie, spójrzmy na dwa modele planowania, które zajmują się przerwaniami procesora.
Oba mają podobne funkcje z zadaniami, stanami zadań, kolejkami i priorytetami (statycznymi lub dynamicznymi):
Zadania w systemie niepostępującym będą działać do momentu ich ukończenia.
Następnie program planujący sprawdza stany wszystkich zadań i planuje następne zadanie o najwyższym priorytecie za pomocą Gotowy stan.
W przypadku harmonogramu nieprzewidywalnego po przypisaniu zadania do procesora nie można go zabrać, nawet jeśli krótkie zadania muszą czekać na zakończenie dłuższych zadań.
Zarządzanie harmonogramem we wszystkich zadaniach jest „sprawiedliwe”, a czasy odpowiedzi są przewidywalne, ponieważ zadania o wysokim priorytecie nie mogą spowolnić zadań oczekujących w dalszej części kolejki.
Harmonogram zapewnia, że każde zadanie otrzymuje swój udział w CPU, unikając opóźnień przy każdym zadaniu. „Ilość czasu” przydzielona procesorowi niekoniecznie musi być równa, ponieważ zależy to od czasu wykonania zadania.
Ten model planowania pozwala na przerwanie zadań - w przeciwieństwie do planowania nieprzewidywalnego, w którym stosuje się podejście „od uruchomienia do zakończenia”.
Przerwania, które mogą być inicjowane z połączeń zewnętrznych, wywołują program planujący do wstrzymania uruchomionego zadania w celu zarządzania innym zadaniem o wyższym priorytecie - dzięki czemu można zapobiec kontroli nad procesorem.
Zadanie o najwyższym priorytecie w Gotowy stan jest wykonywany, umożliwiając szybką reakcję na zdarzenia w czasie rzeczywistym.
Niektóre z wad planowania wyprzedzającego wiążą się ze zwiększeniem narzutów na zasoby podczas korzystania z przerwań i mogą wystąpić problemy z dwoma zadaniami współużytkowania danych, ponieważ jedno może zostać przerwane podczas aktualizacji wspólnych struktur danych i może negatywnie wpłynąć na integralność danych.
Z drugiej strony praktyczna jest możliwość wstrzymania zadania w celu zarządzania innym, które może być krytyczne.
Można zdefiniować wiele wariancji i zależności w różnych politykach, na przykład używając „Zasady Round Robin [i]” gdzie każde zadanie (z jednakowym priorytetem) uruchamia się raz, a następnie umieszcza na końcu kolejki, na następny cykl.
Inne zasady obejmują First-In-First-Out, Najkrótsza praca na pierwszym miejscu, Najkrótsza praca-następna, Najkrótszy pozostały czas, itp.
Analiza danych historycznych może dostarczyć informacji na temat aspektów, takich jak szybkość, z jaką nadchodzą nowe zadania, impulsy CPU i We / Wy itp., Dzięki czemu rozkłady prawdopodobieństwa mogą obliczyć charakterystykę czasów oczekiwania zadań, tym samym uzbrajając administratorów w odpowiednie dane w celu zdefiniowania modeli planowania.