[SISTEMI OPERATIVI]scheduling round robin

starsuper
Ho dei dubbi su alcuni esercizi svolti con scheduling RR:
Processo Tempo di arrivo Tempo di esecuzione
P1 0 14
P2 30 16
P3 6 40
P4 46 26
P5 22 28
Assegnare questo insieme di processi ad un processore in base alla politica Round Robin considerando un quanto di tempo
di 12 millisecondi.
-----------------------------------------------------------------------------------------------------------------------|
Inizio Fine Processo
0 12 P1
12 24 P3
24 26 P1 ∗
26 38 P5
38 50 P3
50 62 P2
62 74 P5
74 86 P4
86 98 P3
98 102 P2 ∗
102 106 P5 ∗
106 118 P4
118 122 P3 ∗
122 124 P∗



So che non risulta molto leggibile e vi consiglio chiunque tenti di aiutarmi di riscriverlo meglio su un foglio di carta.. la mia perplessità e', perche subito dopo la fine di P3 riprendo p1 e non seguo l'ordine dei processi? A quanto ho capito RR è detto anche a coda circolare poiche un porcesso quando termina il suo quanto (q) viene riposizionato in fondo alla coda e si assegna q al processo in testa alla coda ! Ma in questo esercizio tutto ciò non avviene ... vi ringrazio in anticipo.

Risposte
hamming_burst
Non mi ricordo benissimo il suo funzionamento esatto, ricordo i vari vantaggi e svantaggi. Se è ha coda circolare e preemptive, allora presumo che una volta avvenuta la prelazione il processo verrà messo in coda.

perciò se l'ordine dei processi in attesa è questo:

(0)P1(14) - (6)P3(40) - (22)P5(28) - (30)P2(16) - (46)P4(26)

0 P1 12
coda: *P3(40) P1(2)

12 P3 24
coda: P1(2) *P5(28) P3(28)

24 P1 26
coda: P5(28) P3(28)

26 P5 38
coda: P3(28) *P2(16) P5(16)

38 P3 50
coda: P2(16) P5(16) *P4(26) P3(16)

*=nuovo

non lo ho concluso, ma ti ho messo i vari tempi e quando vengono inseriti nel momento con *, se c'è prelazione viene inserito dopo *

Non vedo problemi nel tuo procedimento, forse con il mio riesci a capire il tuo dubbio, ma è corretto.
Se hai domande, chiedi pure :-)

Rggb1
Certo che avviene:

- tempo 0, la coda è vuota, p1 entra in coda, esegue primo processo in coda (p1) e lo toglie dalla coda (che torna vuota)
- tempo 6, aggiunge p6 alla coda vuota == in coda c'è p6
- tempo 12, toglie p1 e lo mette in coda (non ha finito), esegue p6 (che è in cima alla coda), lo rimuove dalla coda == in coda c'è p1
- tempo 22, aggiunge p5 alla coda (in coda ci sono p1, p6)
- tempo 24, toglie p5 e lo mette in coda...

Ti è chiaro il funzionamento con questo esempio? Prova a completare lo schema, vedrai che torna. ;)

[edit] ancora un overlap con ham_burst :-D

starsuper
vi ringrazio, in efffetti torna,ma non lo avevo mai svolto cosi ... anche perche se non sbaglio RR è uno scheduler che è già preemptive di suo...

hamming_burst
certo RR è il classico esempio di prelazione di risorse :-)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.