Strategia SFJ bez wywłaszczania

0

Może mi ktoś wytłumaczyć stretegie SFJ odnośnie planowania przydziału procesów?
Dlaczego tam jest 0+6+3+7? Czas nadejścia P1 to 0, faza trwa 7, to po tym czasie wszystkie inne P są gotowe.

Diagram jest wg mnie dobry, ale nie powinno być (0+7+8+12)/4 ?

Skąd to 6,3,7?

1

Gdyby wszystkie zaczynały się w T=0 to pewnie tak by było, ale zauważ, że nie zaczynają się w T=0, więc czasy oczekiwania będą krótsze.

P1 - od razu wskakuje na CPU -> czas oczekiwania 0
P3 (jako krótszy) po P1: czas oczekiwania: 7-4 = 3
P2 czeka przez: czas wykonaia P3 + czas oczekiwania na zakończenie P1 od momentu rozpoczęcia P2, czyli: 1 (P3) + 7 (P1) - 2 (czas rozpoczęcia P2) = 6
P4 analogicznie

0
yarel napisał(a):

Gdyby wszystkie zaczynały się w T=0 to pewnie tak by było, ale zauważ, że nie zaczynają się w T=0, więc czasy oczekiwania będą krótsze.

P1 - od razu wskakuje na CPU -> czas oczekiwania 0
P3 (jako krótszy) po P1: czas oczekiwania: 7-4 = 3

W takim razie P1 i P3 wykonują się w tym samym czasie? Skoro czas trwania P1 wynosi 7. To nie czekamy aż się P1 wykona i dopiero idziemy z P3?

P2 czeka przez: czas wykonaia P3 + czas oczekiwania na zakończenie P1 od momentu rozpoczęcia P2, czyli: 1 (P3) + 7 (P1) - 2 (czas rozpoczęcia P2) = 6

P4 analogicznie

Nie bardzo wiem w sumie jak to zrobić, bo poprzednie nie wydaje mi sie zbyt logiczne. Może przez to pytanie 1 które zadałem w tym poście.
Tutaj by było P(2)+P(3)+P(1)-P(4) ?

0

Zerknij na załączony obrazek.

Nie mam wywłaszczania, więc to co się rozpoczęło, to nie zostanie przerwane, więc P1 będzie się wykonywał przez 7 jednostek.
Kolejny proces, który czeka do CPU zostanie wzięty na podstawie czasu wykonania (krótsze na początku).

0
yarel napisał(a):

Zerknij na załączony obrazek.

Nie mam wywłaszczania, więc to co się rozpoczęło, to nie zostanie przerwane, więc P1 będzie się wykonywał przez 7 jednostek.
Kolejny proces, który czeka do CPU zostanie wzięty na podstawie czasu wykonania (krótsze na początku).

Ad1 No faktycznie z obrazka jasno wynika ile jednostek się czeka. Tylko na kolokwium zajmie mi się wydaje dużo czasu rysowanie czegoś takiego.

Mimo patrzenia na obrazek, to nie wiem czy u gory to dobrze to wyliczylem, czy nie:/

Ad2
Co znajdę jakiś przykład w internecie to P1 jest od 0 i jest długie.

A jakby się liczyło dla takiego przypadku
Czas nadejscia długość fazy
P1 0 4
P2 2 7
P3 3 5
P4 2 4

1

Nie musisz przecież rysować kratka po kratce, tylko szkic, żeby się łatwiej liczyło.

Dla takiego układu:
P1 0 4
P2 2 7
P3 3 5
P4 2 4

P1 zacznie się wykonywać pierwszy i będzie to trwało 4 jednostki. Jeśli jakiś proces jest gotowy w czasie wykonania innego procesu, to czeka na zakończenie tego procesu (czas oczekiwania zwiększa się). W tym przypadku jak P1 dotrze T=2, to P2 i P4 zaczynają czekać i czekają do zakończenia P1. Po zakończeniu P1, procesy P2 i P4 mają już 2 jednostki oczekiwania, a P3 1 jednostkę (bo też się zaczął się przed zakończeniem P1).

Po zakończeniu P1, zostanie wybrany najkrótszy gotowy proces, czyli P4 itd.

Dla tego przypadku:
wait_p1 = 0
wait_p2 = 11
wait_p3 = 5
wait_p4 = 2

Jak nie ogarniasz tego z rysunku, to nie wiem jak można to prościej.

0

Jeszcze mam pytanie co do planowania rotacyjnego.
P18
P25
P31
P42

Proces:czas gotowosci:czas trwania

Zrobiłem coś takiego:
screenshot-20190124220052.png

Ale wg tej strony: http://edu.pjwstk.edu.pl/wyklady/sop/scb/wyklad4/wyklad.html
Powinno być tak:
screenshot-20190124220211.png
Nie rozumiem dlaczego, w 4 sekundzie, skoro jest gotowy P3, to wracamy do P1, skoro wg. tej strategii mamy iść po kolei jeżeli jakiś proces jest już gotowy. Tak samo dlaczego w 5 sekundzie, skoro P4 jest gotowe wracamy do P2.

0

Z przykładu kwant CPU=2 jednostki

T0..1 - wykonuje się P1, bo kolejka gotowych byłą pusta, więc P1 dostał 2 jednostki
T2..3 - P2 dostaje 2 jednostki, bo w T2 jest gotowy do wykonania, kolejka procesów gotowych była pusta. P1 został wywłaszczony i trafił na koniec kolejki.
T4 : W kolejce jest {P1} i gotowy do wykonania staje się proces P3 - kolejka={P1,P3} i wywłaszczony P2 trafia na koniec kolejki, a P1 dostaje 2 jednostki CPU. Kolejka={P3,P2}

A Ty w T4 przydzieliłeś procesor dla P3. W RoundRobinie wywłaszczony proces trafia na koniec kolejki procesów gotowych do wykonania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1