2014-07-20 33 views
9

W algorytmie szeregowania FCFS, wadą jest to, że jeśli proces P1 o wyższym czasie burst występuje przed niektórymi procesami P2, P3 ... z dużo krótszymi czasami burst, to średni czas oczekiwania i średnie zakończenie czas jest dość wysoki.Planowanie procesora: znalezienie czasu burstowego

Rozwiązaniem tego problemu jest zaplanowanie najkrótszej pracy pierwszej (SJF Algo).

Ale w jaki sposób obliczany jest wcześniej czas synchronizacji? Czy programista określa formułę, według której (zgodnie z dostępnymi zasobami) czas burst do wykonania zadania jest obliczany z góry?

Odpowiedz

5

Oszacowanie czasu trwania procesu jest bardzo dużym tematem. w ogólnym harmonogramie szacuje długość następnej serii na podstawie długości ostatnich impulsów cpu. w zasadzie to, co robimy, to odgadnąć następny czas ataku procesora, zakładając, że będzie on powiązany z poprzednimi impulsami procesora dla tego procesu.

Szybkie wyszukiwanie google doprowadziło mnie do artykułu this, który da ci podstawowy pomysł.

here bardziej szczegółowy przedmiot

3

Można to osiągnąć stosując wykładniczą średnią ocenę formułowaniu

Przewidywany czas procesora rozerwanie (n + 1) -ej procesora serii = (alfa) (rzeczywista Czas działania procesora dla n-tego procesora) + (1-alfa) (szacowany czas Burstu procesora dla n-tego procesora).

gdzie, alpha = stała zmienia się między 0 < = alfa < = 1.

Rzeczywisty czas pracy procesora dla n-tego CPU burst = Jest to najnowszy czas Burst procesora w procesie/zadaniu.

Szacowany czas trwania procesora dla n-tego procesora = informacja o historii procesu/zadania, czyli o tym, jak wcześniej oszacowaliśmy czas pracy procesora.

Po raz pierwszy wykonanie (alpha = 1), musimy wykonać proces/zadanie raz. to daje nam (Rzeczywisty czas procesora dla Nst CPU Burst),

Teraz możemy oszacować nadchodzące wartości czasu burst CPU przez zmianę alfa.