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ównania | Zaplanowane planowanie | Zapobiegawcze planowanie |
---|---|---|
Podstawowy | Zasoby 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łód | Jeś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. |
Koszt | Harmonogramy 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.
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.
Kluczowe różnice między planowaniem wstępnym i niepriorytetowym
- 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 .
- Proces wykonywania w planowaniu prewencyjnym jest przerywany w trakcie wykonywania, podczas gdy proces wykonawczy w planowaniu niepriorytatywnym nie jest przerywany w trakcie wykonywania.
- 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.
- 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.
- 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.
- 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.