[Sistemi Operativi] Algoritmi di Scheduling
Ciao a tutti,
vorrei chiedervi se secondo voi ho svolto nella maniera corretta il seguente esercizio sugli algoritmi di scheduling (FCFS, SRTF e RR):
Siano dati 4 processi con durata dell’esecuzione e tempo d’arrivo espressi
dalla seguente tabella:
###################################################>
Il primo punto dell'esercizio chiede di disegnare lo schema GANTT dei processi relativi ad ogni singolo algoritmo di scheduling.(Legenda = P1 - P2 - P3 - P4)
FCFS (First Come First Serve): 0 1 2 3 4 5 6 7 8 9 10 11
Ho impostato i processi in ordine d'arrivo e della durata corrispondente.
------------------------------------------------------------------------>
SRTF (con prelazione):
In questo caso devo prima fare un passo aggiuntivo, ovvero, ricalcolarmi la tabella con la somma di Durata+Arrivo e poi ordinare i processi dal D+A più piccolo al più grande. Quindi:
Quindi in ordine saranno: P1, P3, P2, P4.
0 1 2 3 4 5 6 7 8 9 10 11
------------------------------------------------------------------------>
RR (con q=1):
Questo forse è il caso più complesso, in quanto si tratta di far partire ogni processo al suo tempo di arrivo e sospendere il processo tutt'ora in esecuzione. Quindi:
0 1 2 3 4 5 6 7 8 9 10 11
Lo schema che ho seguito è quello di far iniziare ogni processo al suo tempo di arrivo, sospendendo quello in corso e poi facendo avanzare i processi che sono stati fermati in ordine uno intervallato dall'altro fino alla fine della loro durata.
###################################################>
Il secondo esercizio chiede di calcolare il TurnAroundTime di ogni processo per ogni algoritmo. Quindi:
FCFS: Per il First Come First Serve ho fatto la somma di durata del processo + la durata del processo/i precedente/i - il tempo d'arrivo del/i processo/i.
P1 = 3 + 0 - 0 = 3
P2 = 5 + 3 - 1 = 7
P3 = 2 + 8 - 3 = 7
P4 = 2 + 10 - 9 = 3
------------------------------------------------------------------------>
SRTF: Qui ho dei dubbi, ovvero non riesco a capire se è corretto il calcolo del T.R.T.:
Per il primo processo calcolo la somma tra durata - arrivo:
P1 = 3 - 0 = 3
Per il secondo/terzo/quarto processo calcolo la somma tra durata - arrivo + punto di inizio effettivo (posizione 5/3/10):
P2 = 5 - 1 + 5 = 9
P3 = 3 -3 + 2 = 2
P4 = 10 - 9 + 2 = 3
------------------------------------------------------------------------>
RR: Sommo alla durata del processo il numero di volte in cui si ripete il processo nello scheduling:
P1 = 3 + 3 = 6
P2 = 5 + 5 = 10
P3 = 2 + 2 = 4
P4 = 2 + 2 = 4
Secondo voi ho svolto l'esercizio nel modo corretto? Grazie mille,
vorrei chiedervi se secondo voi ho svolto nella maniera corretta il seguente esercizio sugli algoritmi di scheduling (FCFS, SRTF e RR):
Siano dati 4 processi con durata dell’esecuzione e tempo d’arrivo espressi
dalla seguente tabella:
Processo | Durata | Arrivo |
---|---|---|
3 | 0 | P2 |
1 | P3 | 2 |
###################################################>
Il primo punto dell'esercizio chiede di disegnare lo schema GANTT dei processi relativi ad ogni singolo algoritmo di scheduling.(Legenda = P1 - P2 - P3 - P4)
FCFS (First Come First Serve): 0 1 2 3 4 5 6 7 8 9 10 11
Ho impostato i processi in ordine d'arrivo e della durata corrispondente.
------------------------------------------------------------------------>
SRTF (con prelazione):
In questo caso devo prima fare un passo aggiuntivo, ovvero, ricalcolarmi la tabella con la somma di Durata+Arrivo e poi ordinare i processi dal D+A più piccolo al più grande. Quindi:
Processo | Durata + Arrivo |
---|---|
3+0=3 | P2 |
P3 | 2+3=5 |
Quindi in ordine saranno: P1, P3, P2, P4.
0 1 2 3 4 5 6 7 8 9 10 11
------------------------------------------------------------------------>
RR (con q=1):
Questo forse è il caso più complesso, in quanto si tratta di far partire ogni processo al suo tempo di arrivo e sospendere il processo tutt'ora in esecuzione. Quindi:
0 1 2 3 4 5 6 7 8 9 10 11
Lo schema che ho seguito è quello di far iniziare ogni processo al suo tempo di arrivo, sospendendo quello in corso e poi facendo avanzare i processi che sono stati fermati in ordine uno intervallato dall'altro fino alla fine della loro durata.
###################################################>
Il secondo esercizio chiede di calcolare il TurnAroundTime di ogni processo per ogni algoritmo. Quindi:
FCFS: Per il First Come First Serve ho fatto la somma di durata del processo + la durata del processo/i precedente/i - il tempo d'arrivo del/i processo/i.
P1 = 3 + 0 - 0 = 3
P2 = 5 + 3 - 1 = 7
P3 = 2 + 8 - 3 = 7
P4 = 2 + 10 - 9 = 3
------------------------------------------------------------------------>
SRTF: Qui ho dei dubbi, ovvero non riesco a capire se è corretto il calcolo del T.R.T.:
Per il primo processo calcolo la somma tra durata - arrivo:
P1 = 3 - 0 = 3
Per il secondo/terzo/quarto processo calcolo la somma tra durata - arrivo + punto di inizio effettivo (posizione 5/3/10):
P2 = 5 - 1 + 5 = 9
P3 = 3 -3 + 2 = 2
P4 = 10 - 9 + 2 = 3
------------------------------------------------------------------------>
RR: Sommo alla durata del processo il numero di volte in cui si ripete il processo nello scheduling:
P1 = 3 + 3 = 6
P2 = 5 + 5 = 10
P3 = 2 + 2 = 4
P4 = 2 + 2 = 4
Secondo voi ho svolto l'esercizio nel modo corretto? Grazie mille,
Risposte
Parti dal presuposto che il turnaroundtime si calcola come tempo di completamento - tempo di arrivo del processo.
Non capisco bene questo tuo ragionamento, comunque il tat di P4 dovrebbe essere 3.
Per il resto, ottimo lavoro
RR: Sommo alla durata del processo il numero di volte in cui si ripete il processo nello scheduling
Non capisco bene questo tuo ragionamento, comunque il tat di P4 dovrebbe essere 3.
Per il resto, ottimo lavoro

"Albesa81":
Parti dal presuposto che il turnaroundtime si calcola come tempo di completamento - tempo di arrivo del processo.
RR: Sommo alla durata del processo il numero di volte in cui si ripete il processo nello scheduling
Non capisco bene questo tuo ragionamento, comunque il tat di P4 dovrebbe essere 3.
Per il resto, ottimo lavoro
Grazie mille,
il mio ragionamento è: siccome il quanto di tempo q = 1, sommo alla durata del processo la durata stessa praticamente

come mai dovrebbe risultare 3? Allora credo di non aver capito come si calcola il tat nel caso RR

come mai dovrebbe risultare 3?
P4 arriva a t=9 e risulta completato a t=12, ergo tat = 12-9 = 3

Giusto
Grazie mille

"JoKeRxbLaCk":
il mio ragionamento è: siccome il quanto di tempo q = 1, sommo alla durata del processo la durata stessa praticamente![]()
Sommi la durata di cosa? Devi tenere conto del fatto che tra due quanti di tempo consecutivi a disposizione dello stesso processo possono essere eseguiti in rotazione da 0 a N processi (con N variabile nel tempo)
