Algorytm planowania priorytetów: PRZYKŁAD z wywłaszczaniem, bez wywłaszczania

Co to jest planowanie priorytetowe?

Planowanie priorytetowe to metoda planowania procesów oparta na priorytetach. W tym algorytmie osoba planująca wybiera zadania do pracy według priorytetu.

Procesy o wyższym priorytecie powinny być wykonywane w pierwszej kolejności, podczas gdy zadania o równych priorytetach są wykonywane na zasadzie round-robin lub FCFS. Priorytet zależy od wymagań dotyczących pamięci, wymagań czasowych itp.

Rodzaje planowania priorytetowego

Planowanie priorytetowe podzielone na dwa główne typy:

Planowanie z wyprzedzeniem

W planowaniu wyprzedzającym zadania są przeważnie przydzielane według priorytetów. Czasami ważne jest, aby uruchomić zadanie o wyższym priorytecie przed innym zadaniem o niższym priorytecie, nawet jeśli zadanie o niższym priorytecie jest nadal uruchomione. Zadanie o niższym priorytecie jest wstrzymywane przez pewien czas i zostaje wznowione po zakończeniu wykonywania zadania o wyższym priorytecie.

Planowanie bez wywłaszczania

W tego typu metodzie planowania procesor jest przydzielany konkretnemu procesowi. Proces, który utrzymuje procesor zajęty, zwolni procesor poprzez zmianę kontekstu lub zakończenie. Jest to jedyna metoda, którą można zastosować dla różnych platform sprzętowych. Dzieje się tak dlatego, że nie wymaga specjalnego sprzętu (na przykład timera), takiego jak planowanie z wywłaszczaniem.

Charakterystyka planowania priorytetów

  • Algorytm procesora, który planuje procesy na podstawie priorytetu.
  • Stosowano w Operasystemy do realizacji procesów wsadowych.
  • Jeśli dwa zadania o tym samym priorytecie są GOTOWE, działa na: KTO PIERWSZY TEN LEPSZY Podstawa.
  • W przypadku planowania priorytetów każdemu procesowi przypisywany jest numer wskazujący jego poziom priorytetu.
  • Im niższa liczba, tym wyższy priorytet.
  • W tego typu algorytmie planowania, jeśli nadejdzie nowszy proces, który ma wyższy priorytet niż aktualnie działający proces, wówczas aktualnie działający proces jest wywłaszczany.

Przykład planowania priorytetów

Rozważ następujące pięć procesów P1 do P5. Każdy proces ma swój unikalny priorytet, czas wybuchu i czas przybycia.

Przetwarzanie Priorytet Czas wybuchu Czas przybycia
P1 1 4 0
P2 2 3 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Krok 0) W chwili = 0 przybywają procesy P1 i P2. P1 ma wyższy priorytet niż P2. Wykonywanie rozpoczyna się od procesu P1, którego czas impulsu wynosi 4.

Planowanie priorytetowe

Krok 1) W czasie = 1 nie pojawia się żaden nowy proces. Wykonywanie jest kontynuowane od P1.

Planowanie priorytetowe

Krok 2) W czasie 2 nie pojawia się żaden nowy proces, więc możesz kontynuować od P1. P2 czeka w kolejce.

Planowanie priorytetowe

Krok 3) W czasie 3 nie pojawia się żaden nowy proces, więc możesz kontynuować od P1. Proces P2 nadal w kolejce oczekującej.

Planowanie priorytetowe

Krok 4) W czasie 4 P1 zakończył wykonywanie. P2 rozpoczyna wykonywanie.

Planowanie priorytetowe

Krok 5) W czasie = 5 nie pojawia się żaden nowy proces, więc kontynuujemy od P2.

Planowanie priorytetowe

Krok 6) O godzinie = 6 przybywa P3. P3 ma wyższy priorytet (1) w porównaniu do P2 mającego priorytet (2). P2 zostaje wywłaszczony, a P3 rozpoczyna wykonywanie.

Przetwarzanie Priorytet Czas wybuchu Czas przybycia
P1 1 4 0
P2 2 1 z 3 w toku 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Planowanie priorytetowe

Krok 7) O godz czas 7, nie pojawia się żaden nowy proces, więc kontynuujemy od P3. P2 jest w kolejce oczekujących.

Planowanie priorytetowe

Krok 8) W czasie = 8 nie pojawia się żaden nowy proces, więc możemy kontynuować od P3.

Planowanie priorytetowe

Krok 9) W czasie = 9 nie pojawia się żaden nowy proces, więc możemy kontynuować od P3.

Planowanie priorytetowe

Krok 10) W przedziale czasowym 10 nie pojawia się żaden nowy proces, więc kontynuujemy od P3

Planowanie priorytetowe

Krok 11) O godzinie = 11 przybywa P4 z priorytetem 4. P3 ma wyższy priorytet, więc kontynuuje wykonywanie.

Przetwarzanie Priorytet Czas wybuchu Czas przybycia
P1 1 4 0
P2 2 1 z 3 w toku 0
P3 1 2 z 7 w toku 6
P4 3 4 11
P5 2 2 12

Planowanie priorytetowe

Krok 12) O godzinie = 12 przybywa P5. P3 ma wyższy priorytet, więc kontynuuje wykonywanie.

Planowanie priorytetowe

Krok 13) W chwili = 13, P3 kończy wykonywanie. Mamy P2, P4, P5 w kolejce gotowych. P2 i P5 mają równy priorytet. Czas przybycia P2 jest przed P5. Zatem P2 rozpoczyna wykonywanie.

Przetwarzanie Priorytet Czas wybuchu Czas przybycia
P1 1 4 0
P2 2 1 z 3 w toku 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Planowanie priorytetowe

Krok 14) W chwili =14 proces P2 zakończył swoje wykonywanie. P4 i P5 znajdują się w stanie oczekiwania. P5 ma najwyższy priorytet i rozpoczyna wykonanie.

Planowanie priorytetowe

Krok 15) W chwili =15 P5 kontynuuje wykonywanie.

Planowanie priorytetowe

Krok 16) W chwili = 16, P5 kończy swoje wykonanie. P4 to jedyny pozostały proces. Rozpoczyna się wykonanie.

Planowanie priorytetowe

Krok 17) W chwili =20 P5 zakończył wykonywanie i nie pozostał żaden proces.

Planowanie priorytetowe

Krok 18) Obliczmy średni czas oczekiwania dla powyższego przykładu.

Czas oczekiwania = czas rozpoczęcia – czas przybycia + czas oczekiwania na następną serię

P1 = o - o = o
P2 =4 - o + 7 =11	
P3= 6-6=0
P4= 16-11=5
Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6

Zalety planowania priorytetowego

Oto zalety/zalety stosowania metody planowania priorytetów:

  • Łatwa w użyciu metoda planowania
  • Procesy są wykonywane na podstawie priorytetów, więc wysoki priorytet nie musi długo czekać, co oszczędza czas
  • Ta metoda zapewnia dobry mechanizm, dzięki któremu można precyzyjnie określić względną ważność każdego procesu.
  • Nadaje się do zastosowań o zmiennym zapotrzebowaniu na czas i zasoby.

Wady planowania priorytetowego

Oto wady/wady planowania priorytetów

  • Jeśli system w końcu ulegnie awarii, wszystkie procesy o niskim priorytecie zostaną utracone.
  • Jeśli procesy o wysokim priorytecie zajmują dużo czasu procesora, procesy o niższym priorytecie mogą zostać wstrzymane na czas nieokreślony.
  • Ten algorytm planowania może pozostawić niektóre procesy o niskim priorytecie w nieskończoność.
  • Proces zostanie zablokowany, gdy będzie gotowy do uruchomienia, ale musi poczekać na procesor, ponieważ aktualnie działa inny proces.
  • Jeśli w kolejce gotowości wciąż pojawia się nowy proces o wyższym priorytecie, proces znajdujący się w stanie oczekiwania może wymagać długiego oczekiwania.

Podsumowanie

  • Planowanie priorytetowe to metoda planowania procesów oparta na priorytetach. W tym algorytmie osoba planująca wybiera zadania do pracy według priorytetu.
  • W przypadku planowania z wywłaszczaniem priorytetów zadania są przeważnie przydzielane według priorytetów.
  • W metodzie planowania z priorytetem bez wywłaszczania procesor został przydzielony do określonego procesu.
  • Procesy są wykonywane na podstawie priorytetów, więc wysoki priorytet nie musi długo czekać, co oszczędza czas
  • Jeśli procesy o wysokim priorytecie zajmują dużo czasu procesora, procesy o niższym priorytecie mogą zostać wstrzymane na czas nieokreślony.