Algorytm planowania priorytetowego: zapobiegawczy, nieprzedmiotowy PRZYKŁAD

Spisie treści:

Anonim

Co to jest planowanie priorytetowe?

Planowanie priorytetowe to metoda planowania procesów oparta na priorytetach. W tym algorytmie harmonogram wybiera zadania do pracy zgodnie z priorytetem.

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

W tym samouczku dotyczącym systemu operacyjnego dowiesz się:

  • Co to jest planowanie priorytetowe?
  • Rodzaje planowania priorytetowego
  • Charakterystyka harmonogramowania priorytetowego
  • Przykład planowania priorytetowego
  • Zalety priorytetowego planowania
  • Wady priorytetowego planowania

Rodzaje planowania priorytetowego

Planowanie priorytetowe podzielone na dwa główne typy:

Planowanie prewencyjne

W planowaniu zapobiegawczym zadaniom w większości przypisuje się ich priorytety. 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 utrzymywane przez pewien czas i zostaje wznowione, gdy zadanie o wyższym priorytecie zakończy się.

Planowanie bez wyprzedzania

W tego typu metodach planowania procesor został przydzielony do określonego procesu. Proces, który powoduje zajętość procesora, zwalnia go przez przełączenie kontekstu lub zakończenie. Jest to jedyna metoda, której można używać na różnych platformach sprzętowych. Dzieje się tak, ponieważ nie wymaga specjalnego sprzętu (na przykład timera), takiego jak planowanie zapobiegawcze.

Charakterystyka harmonogramowania priorytetowego

  • Algorytm procesora, który planuje procesy na podstawie priorytetów.
  • Jest używany w systemach operacyjnych do wykonywania procesów wsadowych.
  • Jeśli dwa zadania o tym samym priorytecie są GOTOWE, działa na zasadzie PIERWSZE PRZYJDŹ, PIERWSZA OBSŁUGA.
  • W planowaniu priorytetów każdemu procesowi przypisywana jest liczba, która wskazuje jego poziom priorytetu.
  • Im mniejsza liczba, tym wyższy priorytet.
  • W tego rodzaju algorytmie szeregowania, jeśli nadejdzie nowszy proces, który ma wyższy priorytet niż aktualnie działający proces, to aktualnie działający proces jest wywłaszczany.

Przykład planowania priorytetowego

Rozważ pięć procesów od P1 do P5. Każdy proces ma swój niepowtarzalny priorytet, czas serii i czas przybycia.

Proces 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 czasie = 0 przychodzą Procesy P1 i P2. P1 ma wyższy priorytet niż P2. Wykonywanie rozpoczyna się od procesu P1, który ma czas 4 serii.

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

Krok 2) W momencie 2 nie nadchodzi nowy proces, więc możesz kontynuować z P1. P2 jest w kolejce oczekujących.

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

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

Krok 5) W czasie = 5 nie nadchodzi żaden nowy proces, więc kontynuujemy z P2.

Krok 6) W czasie = 6 przybywa P3. P3 ma wyższy priorytet (1) niż P2 ma priorytet (2). P2 jest wywłaszczany, a P3 rozpoczyna wykonywanie.

Proces Priorytet Czas wybuchu Czas przybycia
P1 1 4 0
P2 2 1 z 3 oczekujących 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Krok 7) W czasie 7 nie pojawia się nowy proces, więc kontynuujemy P3. P2 jest w kolejce oczekujących.

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

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

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

Krok 11) W czasie = 11 nadejdzie P4 z priorytetem 4. P3 ma wyższy priorytet, więc kontynuuje wykonywanie.

Proces Priorytet Czas wybuchu Czas przybycia
P1 1 4 0
P2 2 1 z 3 oczekujących 0
P3 1 2 z 7 oczekujących 6
P4 3 4 11
P5 2 2 12

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

Krok 13) W czasie = 13, P3 kończy wykonywanie. Mamy P2, P4, P5 w gotowej kolejce. P2 i P5 mają równy priorytet. Czas przybycia P2 jest przed P5. Więc P2 rozpoczyna wykonywanie.

Proces Priorytet Czas wybuchu Czas przybycia
P1 1 4 0
P2 2 1 z 3 oczekujących 0
P3 1 7 6
P4 3 4 11
P5 2 2 12

Krok 14) W czasie = 14 proces P2 zakończył wykonywanie. P4 i P5 są w stanie oczekiwania. P5 ma najwyższy priorytet i rozpoczyna wykonywanie.

Krok 15) W czasie = 15, P5 kontynuuje wykonywanie.

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

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

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 = oP2 =4 - o + 7 =11P3= 6-6=0P4= 16-11=5Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6

Zalety priorytetowego planowania

Oto zalety / wady korzystania z priorytetowej metody planowania:

  • Łatwa w użyciu metoda planowania
  • Procesy są realizowane na podstawie priorytetu, dzięki czemu wysoki priorytet nie wymaga długiego czekania, co oszczędza czas
  • Ta metoda zapewnia dobry mechanizm, w którym można precyzyjnie określić względne znaczenie każdego procesu.
  • Nadaje się do zastosowań o zmiennych wymaganiach czasowych i zasobach.

Wady priorytetowego planowania

Oto wady / wady planowania priorytetowego

  • 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ą zanikać i zostaną odroczone na czas nieokreślony.
  • Ten algorytm planowania może pozostawić niektóre procesy o niskim priorytecie czekające w nieskończoność.
  • Proces zostanie zablokowany, gdy będzie gotowy do uruchomienia, ale będzie musiał czekać na procesor, ponieważ w tej chwili działa inny proces.
  • Jeśli w kolejce gotowości wciąż pojawia się nowy proces o wyższym priorytecie, to proces, który jest w stanie oczekiwania, może wymagać długiego oczekiwania.

Podsumowanie:

  • Planowanie priorytetowe to metoda planowania procesów oparta na priorytecie. W tym algorytmie harmonogram wybiera zadania do pracy zgodnie z priorytetem.
  • W Priority Preemptive Scheduling, zadaniom w większości przypisuje się ich priorytety.
  • W metodzie planowania Priority Non-preemptive, procesor został przydzielony do określonego procesu.
  • Procesy są realizowane na podstawie priorytetu, dzięki czemu wysoki priorytet nie wymaga długiego czekania, co oszczędza czas
  • Jeśli procesy o wysokim priorytecie zajmują dużo czasu procesora, procesy o niższym priorytecie mogą zanikać i zostaną odroczone na czas nieokreślony.