1.7 KiB
Executable file
Analisi delle proprieta' in CTL, da rete di petri
Descrizione della rete PT
La rete e' stata inizialmente modellata come una CPN per semplicita'. (figura) Successivamente e' stato effettuato un unfolding della rete ottenendo cosi' una rete PT che potesse essere analizzata utilizzando CTL.
I posti rilevanti sono i seguenti:
- P1,Q1 rappresentano l'attesa per la sezione critica da parte dei processi P,Q.
- turn rappresenta la variabile turno: nella rete CPN era utilizzata la classe di colori Turn = {p,q}, che e' poi stata convertita durante l'unfolding nei posti turn_p, turn_q
- P2_p, Q2_q rappresentano la SC per P e per Q.
Analisi delle proprieta' con CTL
- Mutua esclusione: Per la mutua esclusione si richiede che non vi siano contemporaneamente entrambi i processi all'interno della sezione critica. Se esiste un caso in cui questo e' vero, allora la proprieta` non e' rispettata.
Query CTL: (greatspn)
!EF (#P2_p > 0 && #Q2_q > 0)
La query e' valutata True.
- Assenza di deadlock:
Possiamo definire l'assenza di deadlock come il caso in cui un processo riesca ad accedere alla sezione critica quando qualunque dei processi ne faccia richiesta. Per questo dobbiamo supporre che i processi siano forzati ad avanzare anche quando al di fuori della sezione critica.
La query utilizzata e' la seguente:
AG ((#P1 > 0 || #Q1 > 0) -> AF (#P2_p > 0 || #Q2_q > 0))
La query e' valutata True.
- Assenza di starvation individuale:
L'assenza di starvation presuppone che se un processo richieda l'accesso alla sezione criticaprima o poi questo possa farlo.
La query utilizzata e' la seguente:
AG ((#P1 > 0 -> EF(#P2_p > 0)) && (#Q1 > 0 -> EF (#Q2_q > 0)))
La query e' valutata True.