Zapobiegawcze i nieprecyzyjne planowanie w systemach operacyjnych

Anonim

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 Planowanie niepriorytacyjne (znany również jako Co-operative Scheduling).

Starsze systemy mogą działać w prostych trybach autonomicznych, ale wraz z rosnącą potrzebą elastycznych systemów, a także wirtualizacji, wydajne zarządzanie wieloma procesami zapewnia szybką reakcję na wszystkie żądania przetwarzania zadań.

Jednostki planowania są często określane jako zadanie zadaniem Schedulera jest uruchamianie i zarządzanie tymi zadaniami, gdy jest to wymagane; Scheduler wybiera zadanie, które ma zostać usunięte i przypisane do CPU w celu przetworzenia, zgodnie z zastosowanym modelem planowania.

Jak Scheduler wie, które zadania są priorytetowe?

Scheduler musi przeprowadzić uczciwy i efektywny proces selekcji, biorąc pod uwagę zmienne, dynamiczne żądania przetwarzania i wykorzystując w pełni cykle procesora.

Zadania mogą być w dwóch stanach podczas przetwarzania:

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

Gdy procesor jest bezczynny, Harmonogram odczytuje znak Gotowa kolejka i wybiera następne zadanie do uruchomienia. Wtedy to jest Dyspozytor która daje wybraną kontrolę zadania CPU, więc musi być szybka! Każda godzina przyjęta przez Dyspozytora jest znana jako Czas oczekiwania na wysyłkę.

Istnieją różne struktury i niestandardowe parametry do zdefiniowania Gotowa kolejka, a także kilka metod, które można wykorzystać do zarządzania złożonością procesu szeregowania.

Zasadniczo chodzi o optymalizację i maksymalizację wykorzystania procesora, przepustowości itp.

Scheduler musi podjąć decyzję w jednym z następujących etapów:

  1. Gdy zadanie zmienia się z a Bieganie do a Czekam na państwo (na przykład czekanie podczas żądania we / wy).
  2. Gdy Zadanie zmienia się z Bieganie do Gotowy (na przykład odpowiadając na przerwanie).
  3. Gdy Zadanie zmienia się z Czekanie do Gotowy (na przykład żądanie WE / WY jest zakończone).
  4. Kiedy Zadanie

Nowe zadanie musi zostać wybrane, jeśli etap 1 lub 4 ma miejsce, aby zapewnić pełne wykorzystanie procesora. W obu etapach 2 i 3 zadanie może być kontynuowane lub wybierany jest nowy.

Po zrozumieniu, w jaki sposób przetwarzane jest zadanie, przyjrzyjmy się dwóm modelom planowania, które dotyczą przerwania procesora.

Oba mają podobne funkcje do zadań, stanów zadań, kolejek i priorytetów (statycznych lub dynamicznych):

  • Planowanie niepriorytacyjne jest, gdy zadanie jest uruchamiane do momentu zatrzymania (dobrowolnie) lub zakończenia. System Windows® miał niepriorytacyjne planowanie do wersji Windows 3.x, po czym został zmieniony na Preemptive z Windows 95.
  • Zaplanowane planowanie to miejsce, w którym zadanie może zostać zawieszone przez przerwanie procesora, w przeciwieństwie do Non-Preemptive, w którym zadanie jest uruchamiane, dopóki nie zwalnia kontroli nad procesorem.

Planowanie niepriorytacyjne

Zadania w systemie nieobciążającym będą działać do momentu zakończenia.

Następnie Scheduler sprawdza wszystkie stany zadań i planuje następne zadanie o najwyższym priorytecie za pomocą Gotowy stan.

Dzięki Zaplanowanemu Planowaniu, gdy zadanie ma przypisane do CPU, nie można go zabrać, nawet jeśli krótkie zadania muszą czekać na wykonanie dłuższych zadań.

Zarządzanie planowaniem we wszystkich zadaniach jest "sprawiedliwe", a czasy odpowiedzi są przewidywalne, ponieważ zadania o wysokim priorytecie nie mogą podnosić zadań oczekujących w kolejce.

Harmonogram zapewnia, że ​​każde zadanie otrzymuje swój udział w procesorze, unikając opóźnień przy każdym zadaniu. "Czas" przydzielony procesorowi może nie być koniecznie taki sam, ponieważ zależy od tego, ile czasu zajmuje ukończenie zadania.

Zaplanowane planowanie

Ten model planowania umożliwia przerywanie zadań - w przeciwieństwie do planowania niepriorytetowego, które ma podejście "run-to-complete".

Przerwania, które mogą być inicjowane z połączeń zewnętrznych, wywołują program planujący w celu wstrzymania uruchomionego zadania w celu zarządzania innym zadaniem o wyższym priorytecie - tak, aby można było wywrócić kontrolę nad procesorem.

Zadanie o najwyższym priorytecie w Gotowy Stan jest wykonywany, umożliwiając szybką reakcję na zdarzenia w czasie rzeczywistym.

Niektóre wady z Planowaniem wstępnym wiążą się ze wzrostem kosztów ogólnych związanych z zasobami podczas korzystania z przerwań i mogą wystąpić problemy z dwoma zadaniami udostępniania danych, ponieważ jeden może zostać przerwany podczas aktualizowania wspólnych struktur danych i może negatywnie wpłynąć na integralność danych.

Z drugiej strony, praktyczne jest móc wstrzymać zadanie, aby zarządzać 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 przy użyciu a "Polityka Round Robin [i]" gdzie każde zadanie (z równym priorytetem) uruchamia się raz, a następnie umieszcza na końcu kolejki, dla następnego cyklu.

Inne zasady obejmują First-In-First-Out, Najkrótsza praca - pierwsza, Najkrótsza praca-następna, Najkrótszy pozostały czasitp.

Analiza danych historycznych może dostarczyć informacji na temat aspektów, takich jak tempo, z jakim przybywają nowe zadania, CPU i I / O Burst itp., Więc rozkłady prawdopodobieństwa mogą obliczyć charakterystykę czasów oczekiwania zadań, a tym samym uzbroić administratorów w odpowiednie dane, aby zdefiniować modele planowania.