[Systemy Operacyjne] Algorytmy planowania przydziału proces.

0Mniac
Użytkownik
Użytkownik
Posty: 114
Rejestracja: 7 cze 2015, o 18:22
Płeć: Mężczyzna
Podziękował: 73 razy
Pomógł: 1 raz

[Systemy Operacyjne] Algorytmy planowania przydziału proces.

Post autor: 0Mniac »

Witam. Mam pytanie dot. algorytmów planowania przydziału procesora. Mam procesy opisane trzema parametrami- Czas trwania fazy, Priorytet oraz Czas przybycia. Potrzebuję rozpisać algorytmy takie jak SJF, RR oraz priorytetowy. I mam problem- przykładowo według SJF okazuje się, że mam 2 procesy o takim samym czasie trwania. I teraz nie mam pojęcia jak zadecydować, który proces wybrać. Podobnie w priorytetowym- co, gdy 2 procesy maja taki sam priorytet. Oczywiście mówię o sytuacji, gdy procesy te już się pojawiły, a nawet pojawiły się w tym samym czasie. Jakieś wskazówki co robić w takich wypadkach? W internecie nie mogę tego doczytać- jest masa przykładów, ale wszystkie bardzo okrojone i podstawowe.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[Systemy Operacyjne] Algorytmy planowania przydziału proces.

Post autor: Afish »

Remisy możesz rozstrzygnąć w jakikolwiek sposób, ale musisz uważać, aby nie zagłodzić procesu i jak najmniej wpaść w problem odwrócenia priorytetów. Typowe implementacje (Windows, Linux) stosują RR dla każdego priorytetu, więc takie podejście bym zalecał. Co do początkowej kolejności, to w przypadku remisu wybierz dowolną, na przykład posortuj po numerach procesów (które muszą być różne).
0Mniac
Użytkownik
Użytkownik
Posty: 114
Rejestracja: 7 cze 2015, o 18:22
Płeć: Mężczyzna
Podziękował: 73 razy
Pomógł: 1 raz

[Systemy Operacyjne] Algorytmy planowania przydziału proces.

Post autor: 0Mniac »

Dzięki za odpowiedź. Mam jeszcze pewien problem z planowaniem priorytetowym. Mam 15 procesów na wejściu. Najwyższy priorytet jest gdzieś na końcu (największa liczba- największy priorytet czy tak?). I teraz do czasu jego przyjścia mam go ignorować czy "czekać" na jego wejście?
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[Systemy Operacyjne] Algorytmy planowania przydziału proces.

Post autor: Afish »

0Mniac pisze:największa liczba- największy priorytet czy tak?

Zależy, w Windowsie tak, w Linuksie wyższa liczba to niższy priorytet.
0Mniac pisze:I teraz do czasu jego przyjścia mam go ignorować czy "czekać" na jego wejście?
To też zależy. Windows wywłaszczy aktualny proces gdy tylko pojawi się jakiś o wyższym priorytecie, nie wiem, jak zachowuje się Linux w tej sytuacji.
Może też pojawić się problem odwrócenia priorytetu, gdy jakiś proces o niższym priorytecie trzyma zasób potrzebny procesowi o wyższym priorytecie. Wtedy może wystąpić potrzeba podbicia priorytetu mniej ważnego procesu, aby ten ważniejszy miał szanse szybciej dostać procesor. Ogólnie to musisz przyjąć jakieś rozwiązanie i umieć je obronić, uwzględniając jego zalety i wady — nie ma złotego środka.
0Mniac
Użytkownik
Użytkownik
Posty: 114
Rejestracja: 7 cze 2015, o 18:22
Płeć: Mężczyzna
Podziękował: 73 razy
Pomógł: 1 raz

[Systemy Operacyjne] Algorytmy planowania przydziału proces.

Post autor: 0Mniac »

Mam podpunkt do tego zadania jeśli chodzi o uniknięcie omijania procesów- po każdych 10 jednostkach zmiana priorytetu o 1. Jeśli dobrze zatem rozumiem po 10 wejściach procesów priorytet reszty podnosi się o 1. Dzięki za informację, ułożę wszystko wedle Linuxowego sposobu, jako że na nim działaliśmy na zajęciach.
ODPOWIEDZ