2014-07-20 11 views
9

Nell'algoritmo di schedulazione FCFS lo svantaggio è che se un processo P1 con un tempo di burst superiore viene prima di alcuni processi P2, P3 ... con tempi di burst molto più piccoli quindi il tempo medio di attesa e il completamento medio il tempo è abbastanza altoProgrammazione CPU: ricerca del tempo di raffica

Una soluzione a questo problema è pianificare il lavoro più breve al primo posto (SJF Algo).

Ma come viene calcolato in anticipo il tempo di raffica? Lo sviluppatore specifica una formula in base alla quale (in base alle risorse disponibili) il tempo di raffica per eseguire un lavoro viene calcolato in anticipo?

risposta

5

La stima del tempo di burst di un processo è un argomento molto ampio. nello scheduler generale stima la lunghezza del burst successivo in base alle lunghezze delle recenti raffiche di cpu. fondamentalmente ciò che facciamo è indovinare il prossimo tempo di burst della CPU assumendo che sarà correlato alle scoppi della CPU passati per quel processo.

Una rapida ricerca su google mi ha portato all'articolo this che ti darà un'idea di base.

here è un articolo più dettagliato

3

Questo può essere fatto utilizzando una stima media esponenziale formula-

CPU Tempo stimato Burst (n + 1) -esimo CPU burst = (alpha) (Actual Tempo di Burst CPU per l'ennesima CPU Burst) + (1-alpha) (Tempo di raffica della CPU stimato per l'ennesimo burst della CPU).

dove, alfa = una costante varia tra 0 < = alpha < = 1.

CPU effettiva Tempo di burst per l'ennesima CPU burst = È il tempo di Burst CPU più recente del processo/processo.

Tempo di raffica della CPU stimato per l'ennesima CPU burst = Ci dà un'idea della cronologia del processo/lavoro, ovvero di come in precedenza abbiamo stimato il tempo di Burst della CPU.

Per la prima esecuzione (alfa = 1), dobbiamo eseguire il processo/lavoro una volta. ci dà (tempo effettivo Burst CPU per l'ennesima CPU Burst),

Ora, possiamo stimare i prossimi valori di tempo di burst della CPU variando l'alfa.

Problemi correlati