Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- [bruschi]algoritmo del banchiere (http://www.dsy.it/forum/showthread.php?threadid=30779)
[bruschi]algoritmo del banchiere
ciao a tutti,
non ho capito una cosa sull'algoritmo del banchiere.Le risorse totali del sistema sono un dato calcolato oppure e' gia' assunto?
mentre il prof spiega e dice che le risorse E sono 6342 le calcola in qualche modo?nella video lezione non lo dice...e io non capisco in che modo le ricava...
grazie
Ciao
Sono un dato assunto...
bye!
__________________
The answer is blowing in the wind...
grazie!!!
io non ho capito come funziona l'algoritmo del banchiere,tipo quello nella side 28 lez14. Qualcuno è così gentile da spiegarmelo..? (non riesco proprio a capire la relazione fra le risorse E,P,A e i numeri nelle matrici) GRAZIE!!!
vediamo di spiegarlo
prima matrice, risorse assegnate
significa che quelle risorse sono già state assegnate a quei processi
le lettere a b c d e rappresentano i processi (e non le risorse)
le colonne rappresentano le risorse, tape driver (indico con td), plotter (indico on pl), printers (indico con pr), e cd
quindi, il processo a ha già assegnato 3 td 1 pr e 1 cd
il processo b ha già assegnato 1 pl
e così via
ci sei fino a qui?
la seconda matrice rappresenta il numero di risorse che potrebbero richiedere i singoli processi
cioè... il processo a per terminare potrebbe ancora richiede 1 td e 1 pl
b pootrebbe richiedere 1 pl e 1 pr
eccetera
ok?
i numeri in parte poi, come spiegato sotto, significano
E = risorse totali, cioè quante risorse ci sono nel nostro sistema... significa in questo caso che il nostro sistema ha i totale 6 td, 3 pl, 4 pr, 2 cd
ci sei?
questi sono dati che ti vengono sempre dati
cioè ti vengono dati sempre il numero di risorse del sistema, il numero di risorse già assegnate in un dato momento, e il numero di risorse massime che il processo potrà richiedere (nel caso della slide ti da il numero di risosre che potrà ancora chiedere... il concetto è lo stesso... risorse che potrà ancora chiedere = risorse max - risorse già proprie)
P indica le risosre che il sistema si vede già occupate (sono la semplice somma dei numeri delel colonne)
quindi il sistema ha nel momento attuale già occupate 5 td (1 ad A, 3 a C e 2 a E)
e così via
A nvece rappresenta il numero di risosre disponibili (non è altro che E-P)
questei due, P e A te li devi calcolare te (ma è immediato)
da qui ora applichi l'algoritmo del banchiere
per esempio
puoi far paritre A? a necessita di 1 td e 1 pl... ma io non ho pl
puoi far partire D?
vediamo... dalla seconda matrice vedi che D richiede al massimo un altra pr... nel sistema ce ne sono disponibili ancora 2 (lo vedi da vettore A)
quindi lo puoi far partire.... il sistema sarà subito dopo in safe, perchè se poi D finisce ti rilascia 1 td, 1 pl e un CD (lo vedi dalla prima matrice)
ora con D terminato, dovresti aggiornare le due matrici... eliminando la riga D i pratica
e il vettore E rimane ovviamente invariato
E è = (6342)
P diventa (5221)
A diventa (1121)
ora potresti far partire C?
ovviamente no... passerei in uno stato non sicuro... C ha bisogno al massimo di 3 td... ma io ne ho solo 1 disponibile... se parte, le richiede tutte... vado in stallo
posso far partire B? no
posso far partire A? sì, certo, ora sì
__________________
Heal The World
Just Because You Read It In A Magazine Or You See It On A Tv Scren Don't Make It Factual
Scusate se approfitto volevo sapere come viene calcolato il tempo media di attesa in RR (Round Robin) vedi esempio allegato:
Esempio (quanto = 20)
Process Burst Time
P1 53
P2 17
P3 68
P4 24
Average Waiting time = (117 + 20 + 117 + 97)/4
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
Come li calcola i valori (tra parentesi)
Grazie a chiunque risponda
__________________
Poca osservazione e molto ragionamento portano all’errore,
molta osservazione e poco ragionamento conducono alla verità
grazie mille mjfan80,chiarissimo! (23 rulez )
mhmhmhmh non mi tornano i conti...
Ma devo essere sincero non mi sono mai tornati del tuttto...
allora, assumendo che tutti arrivino all'istante 0:
P2 inizia all'istante 20 e termina subito, quindi il suo tempo d'attesa è 20
P4 inizia all'istante 57, esegue per 20, si rimette in attesa, riparte a 117 e termina, quindi attende:
57 + (117 - (57+20)) = 97
e fino a qua tutto ok...
P1 iniza a 0, esegue e si rimette in attesa, riprende a 77, e a 121 con lo stesso criterio:
0 + (77 - (0+20)) + ( 121 - (77+20)) = 81
P3 inizia a 37 esegue, riprende a 97 , riprende a 134:
37 + (97 - (37+20)) + (134 - (97+20)) = 94
quindi secondo i miei calcoli sarebbe:
(81 + 20 + 94 + 97) / 4
il tutto però si riduce ad un calcolo del genere:
P1 finisce a 134 e "lavora" per 53 --- 134 - 53 = 81
P2 finisce a 37 e "lavora" per 12 --- 37 - 17 = 20
P3 finisce a 162 e "lavora" per 68 --- 162 - 68 = 94
P4 finisce a 121 e "lavora" per 24 --- 121 - 24 = 97
Cosa c'è di sbagliato???
mi spiegate perchè parlate di rr quando stiamo discutendo del banchiere?
ps, cmq anche a me vengono i calcoli proposti da skunk, partendo dal presupposto che arrivano tutti all'istante zero
__________________
Heal The World
Just Because You Read It In A Magazine Or You See It On A Tv Scren Don't Make It Factual
mjfan80, hai perfettamente ragione, forse era meglio aprire un nuovo thread, ma visto che era stato richiesto, ho rifatto l'esercizio...
Mi tira un po' su di morale sapere che i calcoli non vengono così solo a me!!!
All times are GMT. The time now is 17:44. | Show all 10 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.