Różnica między planowaniem zapobiegawczym i nieprzewidywalnym w systemach operacyjnych

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.

Skąd program planujący wie, które zadania są priorytetowe?

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:

  1. W Seria CPU gdzie procesor wykonuje obliczenia w celu przetworzenia zadania (okres dla serii CPU różni się w zależności od zadania i od programu do programu).
  2. W Seria wejścia / wyjścia (I / O) oczekiwanie na dane do odebrania lub wysłania z systemu.

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:

  1. Gdy zadanie zmienia się z Bieganie do Stan oczekiwania (na przykład oczekiwanie podczas żądania We / Wy).
  2. Kiedy zadanie zmieni się z Bieganie do Gotowy (na przykład reagowanie na przerwanie).
  3. Kiedy zadanie zmieni się z Czekanie do Gotowy (na przykład żądanie We / Wy zostało zakończone).
  4. Kiedy Zadanie

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):

  • Harmonogram nieprewencyjny ma miejsce, gdy zadanie jest uruchamiane do momentu zatrzymania (dobrowolnie) lub zakończenia. System Windows® miał harmonogram zapobiegawczy do systemu Windows 3.x, po czym zmienił się na system wyprzedzający z Windows 95.
  • Planowanie wyprzedzające jest miejscem, w którym zadanie może zostać przymusowo zawieszone przez przerwanie procesora, w przeciwieństwie do trybu nieprzewidzianego, w którym zadanie jest uruchamiane do momentu zwolnienia kontroli nad procesorem.

Harmonogram nieprewencyjny

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.

Planowanie wyprzedzające

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.

W podsumowaniu

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.