View Full Version : Grafo di precedenza - processi
vonkraun
15-02-2011, 15:25
Devo risolvere questo esercizio di un tema d'esame del corso di Sistemi Operativi ma non riesco.
Realizzare il grafo di precedenza indicato in figura utilizzando il numero minimo di semafori e tenendo conto che i processi sono ciclici, e che i processi individuati con il numero 3 hanno lo stesso codice.
-->1
| / / \ \
| / / \ \
| 2 3 3 3
| \ \ / /
| \ \ / 4
| \ \ / /
--- 5
Spero si capisca! ;D
Il problema qui sta nel capire se un processo con lo stesso codice di un altro va eseguito in mutua esclusione o può non essere eseguito. E se il processo 5 debba attendere la segnalazione di 4 processi o solo di 2 e 4.
Avete idee?
Sicuramente il processo 5 deve attendere tutti, altrimenti non sarebbe un grafo di precedenza.
I processi 3...qui dovresti vedere come viene interpretata la cosa in altri esercizi. Se c'è mutua esclusione dipende da cosa c'è scritto nel codice uguale per tutti.
banryu79
16-02-2011, 09:20
*edit
vonkraun
16-02-2011, 17:32
Sicuramente il processo 5 deve attendere tutti, altrimenti non sarebbe un grafo di precedenza.
I processi 3...qui dovresti vedere come viene interpretata la cosa in altri esercizi. Se c'è mutua esclusione dipende da cosa c'è scritto nel codice uguale per tutti.
Purtroppo non è mai capitato un esercizio del genere in un tema d'esame, nè è stato proposto a lezione.
Bisognerebbe capire come vengono trattati processi diversi ma con lo stesso codice. 5 deve attenderne uno solo? Ho pensato che di sicuro 4 deve attendere 3 perchè altrimenti non potrebbe essere eseguito, quindi uno dei 3 va in esecuzione. Ma è sicuro che non si tratti di mutua esclusione?
Solitamente quando un esercizio era basato sulla mutua esclusione gli archi che collegavano processi da eseguire in mutua esclusione venivano tratteggiati (dal mio grafo sembra in realtà che sia così:D ), ma qui non è così. Quindi serve capire come detto prima cosa fanno più processi in concorrenza con lo stesso codice. E se più processi con diverso codice sono in realtà lo stesso processo o sono diversi (io direi la seconda dato che un processo non è definito solo dal codice che esegue).
Edit: stavo pensando che magari dire che piu processi hanno lo stesso codice equivale a dire che lavorano sulle stesse variabili e quindi vengono a mancare le condizioni di concorrenza. Dovrebbero così essere eseguiti in mutua esclusione.
Che ne pensate? Rimane comunque il processo 4 fra le ruote però...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.