Zalecane, 2024

Wybór Redakcji

Różnica między planowaniem wstępnym i niepriorytatywnym w systemie operacyjnym

Obowiązkiem harmonogramu procesora CPU jest przypisanie procesu do procesora, gdy procesor jest w stanie bezczynności. Program planujący CPU wybiera proces z gotowej kolejki i przydziela proces procesorowi. Harmonogram, który ma miejsce, gdy proces przechodzi ze stanu pracy do stanu gotowości lub ze stanu oczekiwania do stanu gotowości, nazywa się Planowanie wstępne . W przypadku rąk, planowanie, które ma miejsce, gdy proces kończy się lub przełącza z uruchamiania na oczekiwanie na stan tego rodzaju harmonogramowania procesora, nazywa się Planowaniem niepriorytajnym . Podstawowa różnica między planowaniem zapobiegawczym i niepriorytatywnym polega na samej nazwie. To jest Prewencyjne planowanie może być uprzedzone; procesy można zaplanować. W Zapobiegawczym harmonogramie procesy nie mogą być zaplanowane.

Omówmy różnice pomiędzy planem wstępnym i niepriorytetowym w skrócie, korzystając z tabeli porównawczej pokazanej poniżej.

Wykres porównania

Podstawa do porównaniaZaplanowane planowanieZapobiegawcze planowanie
PodstawowyZasoby są przydzielane do procesu przez ograniczony czas.Po przydzieleniu zasobów do procesu proces zachowuje go, dopóki nie zakończy swojego czasu burst lub nie przejdzie w stan oczekiwania.
PrzerwaćProces może być przerwany pomiędzy.Proces nie może zostać przerwany, dopóki nie zakończy się lub nie przejdzie w stan oczekiwania.
GłódJeśli proces o wysokim priorytecie często pojawia się w gotowej kolejce, proces o niskim priorytecie może głodować.Jeśli proces z długim czasem burstowania uruchamia procesor, wówczas inny proces z mniejszym czasem burst CPU może głodować.
Nad głowąZapobiegawcze planowanie ma narzuty planowania procesów.Harmonogram nieopartyjny nie ma kosztów ogólnych.
ElastycznośćPlanowanie wyprzedzające jest elastyczne.Harmonogram niepriorytatywny jest sztywny.
KosztHarmonogramy zapobiegawcze są powiązane z kosztami.Harmonogram nieopartyjny nie jest asocjacyjny kosztowo.

Definicja planowania zapobiegawczego

Planowanie wyprzedzające to takie, które można wykonać w okolicznościach, w których proces przełącza się ze stanu działania do stanu gotowości lub ze stanu oczekiwania do stanu gotowości . W tym przypadku zasoby (cykle procesora) są przydzielane do procesu przez ograniczony czas, a następnie są usuwane, a proces jest ponownie umieszczany w gotowej kolejce, jeśli nadal ma pozostały czas pracy procesora. Proces pozostaje w gotowej kolejce do momentu uzyskania kolejnej szansy na wykonanie.

Jeśli proces z wysokim priorytetem dotrze do gotowej kolejki, nie musi czekać, aż bieżący proces zakończy swój czas burst. Zamiast tego bieżący proces jest przerywany w trakcie wykonywania i jest umieszczany w gotowej kolejce do czasu, gdy proces o wysokim priorytecie będzie wykorzystywał cykle procesora. W ten sposób każdy proces w gotowej kolejce dostaje trochę czasu na uruchomienie procesora. Ułatwia planowanie prewencyjne, ale zwiększa narzut przełączania procesu ze stanu działania do stanu gotowości i wersetu.

Algorytmy, które działają na planowanie zapobiegawcze, to Round Robin. Najkrótsza pierwsza praca (SJF) i planowanie priorytetu może, ale nie musi, być objęte harmonogramem zapobiegawczym.

Weźmy przykład Planowania zapobiegawczego, spójrz na obrazek poniżej. Mamy cztery procesy P0, P1, P2, P3. Z tego czasu P2 przybywa o czasie 0. Zatem procesor jest przydzielany do procesu P2, ponieważ nie ma innego procesu w kolejce. W międzyczasie P2 wykonywał, P3 przybywa w czasie 1, teraz pozostały czas dla procesu P2 (5 milisekund), który jest większy niż czas wymagany przez P3 (4 milisekundy). Zatem procesor jest przydzielany procesorowi P3.

W międzyczasie wykonywał P3, proces P1 nadszedł w czasie 2. Teraz pozostały czas dla P3 (3 milisekundy) jest krótszy niż czas wymagany przez procesy P1 (4 milisekundy) i P2 (5 milisekund). Zatem P3 może kontynuować. Gdy P3 kontynuuje proces P0 pojawia się w czasie 3, teraz pozostały czas dla P3 (2 milisekundy) jest równy czasowi wymaganemu przez P0 (2 milisekundy). Zatem P3 kontynuuje i po zakończeniu P3 procesor jest przydzielany do P0, ponieważ ma mniej czasu burstowego niż inne. Po zakończeniu P0 procesor zostaje przydzielony do P1, a następnie do P2.

Definicja planowania niepriorytatywnego

Harmonogram nieprzeprowadzający to taki, który można zastosować w okolicznościach, w których proces się kończy lub gdy proces przechodzi ze stanu działania do oczekiwania . W Zaplanowaniu niepriorytorskim, po przypisaniu zasobów (procesorowi) do procesu, proces przechowuje procesor, dopóki nie zostanie zakończony lub osiągnie stan oczekiwania.

W przeciwieństwie do planowania zapobiegawczego, planowanie zapobiegawcze nie przerywa procesu uruchamiającego procesor w trakcie wykonywania. Zamiast tego oczekuje, że proces zakończy swój czas działania procesora, a następnie może przydzielić procesor do innego procesu.

W Zapobiegawczym szeregowaniu, jeśli wykonywany jest proces o długim czasie działania procesora, drugi proces będzie musiał długo czekać, co wydłuży średni czas oczekiwania procesów w gotowej kolejce. Jednak planowanie zapobiegawcze nie ma żadnego narzutu przełączania procesów z gotowej kolejki na procesor, ale powoduje, że planowanie jest sztywne, ponieważ proces w trakcie wykonywania nie jest nawet zwalniany dla procesu o wyższym priorytecie.

Pozwól nam rozwiązać powyższy przykład szeregowania w sposób nie zapobiegawczy. Początkowo proces P2 przychodzi w czasie 0, więc procesor jest przydzielany do procesu P2, który trwa 6 milisekund. Pomiędzy wszystkimi procesami tj. P0, P1, P3 wchodzi do gotowej kolejki. Ale wszyscy czekają, aż proces P2 zakończy swój czas działania procesora. Następnie proces, który nadejdzie po P2, tj. P3 zostanie przydzielony procesorowi, aż zakończy swój czas burst. Podobnie, następnie wykonuje się P1, a procesor jest później dany do przetwarzania P0.

Kluczowe różnice między planowaniem wstępnym i niepriorytetowym

  1. Podstawowa różnica między planowaniem zapobiegawczym i nie z wyprzedzeniem polega na tym, że w planowaniu wyprzedzającym procesor jest przydzielany do procesów przez ograniczony czas. Podczas planowania bez obciążenia z wyprzedzeniem procesor jest przydzielany do procesu, dopóki nie zakończy się lub nie przejdzie w stan oczekiwania .
  2. Proces wykonywania w planowaniu prewencyjnym jest przerywany w trakcie wykonywania, podczas gdy proces wykonawczy w planowaniu niepriorytatywnym nie jest przerywany w trakcie wykonywania.
  3. Zapobiegawcze planowanie ma na celu przełączenie procesu ze stanu gotowości do stanu działania, vise-wersetu i utrzymanie gotowej kolejki. Z drugiej strony, planowanie zapobiegawcze nie ma na celu przełączenia procesu ze stanu działania do stanu gotowości.
  4. W planowaniu zapobiegawczym, jeśli proces z wysokim priorytetem często pojawia się w gotowej kolejce, proces o niskim priorytecie musi długo czekać i być może trzeba umrzeć z głodu. Z drugiej strony, w harmonogramie niepriorytatywnym, jeśli procesor jest przydzielany do procesu o dłuższym czasie trwania, wówczas procesy o małym czasie trwania mogą wymagać głodzenia.
  5. Zapobiegawcze planowanie jest dość elastyczne, ponieważ krytyczne procesy mają dostęp do procesora, gdy docierają do gotowej kolejki, bez względu na to, jaki proces jest obecnie wykonywany. Harmonogramowanie bez prewencyjne jest sztywne, ponieważ nawet jeśli krytyczny proces przechodzi do kolejki gotowości, procesor, w którym działa CPU, nie jest zakłócany.
  6. Planowanie wstępne jest powiązane kosztowo, ponieważ musi zapewniać integralność udostępnianych danych, co nie ma miejsca w przypadku planowania nieprzeprowadzającego.

Wniosek:

Nie jest tak, że planowanie zapobiegawcze jest lepsze niż planowanie nieprzewidziane lub vise-werset. Wszystko zależy od tego, w jaki sposób planowanie minimalizuje średni czas oczekiwania procesów i maksymalizuje wykorzystanie procesora.

Top