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.
Krok 1) W czasie = 1 nie pojawia się żaden nowy proces. Wykonywanie jest kontynuowane od P1.
Krok 2) W czasie 2 nie pojawia się żaden nowy proces, więc możesz kontynuować od P1. P2 czeka w kolejce.
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.
Krok 4) W czasie 4 P1 zakończył wykonywanie. P2 rozpoczyna wykonywanie.
Krok 5) W czasie = 5 nie pojawia się żaden nowy proces, więc kontynuujemy od P2.
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 |
Krok 7) O godz czas 7, nie pojawia się żaden nowy proces, więc kontynuujemy od P3. P2 jest w kolejce oczekujących.
Krok 8) W czasie = 8 nie pojawia się żaden nowy proces, więc możemy kontynuować od P3.
Krok 9) W czasie = 9 nie pojawia się żaden nowy proces, więc możemy kontynuować od P3.
Krok 10) W przedziale czasowym 10 nie pojawia się żaden nowy proces, więc kontynuujemy od P3
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 |
Krok 12) O godzinie = 12 przybywa P5. P3 ma wyższy priorytet, więc kontynuuje wykonywanie.
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 |
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.
Krok 15) W chwili =15 P5 kontynuuje wykonywanie.
Krok 16) W chwili = 16, P5 kończy swoje wykonanie. P4 to jedyny pozostały proces. Rozpoczyna się wykonanie.
Krok 17) W chwili =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 = 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.