Exercice
Avant-dernier exercice du dernier
rencontre. Expliquer la méthode utilisée pour s'assurer que la machine
est correcte par rapport aux spécifications.
Exercice
Quelle est la différence entre les commandes
strongeq
et eq
? Écrire deux agents CCS
A
et B
tels que :
Command: eq(A,B);
true
Command: strongeq(A,B);
false
Exercice
Modifier le fichier buffers.cwb de façon
qu'il contient :
- Une définition d'un buffer
B1_
de dimension 1 en
tant que automate.
- Une définition d'un buffer B2_ de dimension 1 en tant que
automate.
- Une définition d'un buffer B2p_ de dimension 1 en tant que
composition séquentielle de 2 buffers de dimension 1.
Vérifier, à l'aide de la commande eq(B2_,B2p_)
que les deux buffers sont équivalents. Définir, à l'aide de la
commande min(B2pp_,B2p_)
, un troisième agent
B2pp_
. Faire la comparaison du graphe de
B2_
avec celui B2pp_
.
Exercice
Trois processus P1, P2, et P3 demandent chacun
l'autorisation de démarrer une tache à l'aide des actions 'di, et
annoncent la terminaison de cette tache à l'aide des actions 'fi
(i=1,2,3). Les processus Pi itèrent infiniment souvent cette boucle.
On veut définir un agent CCS Sched (=Scheduler) qui donnes les
autorisations à démarrer un tache en se synchronisant sur les actions
di et fi. Le processus Sched devra satisfaire ces contraintes:
- Le processus Sched autorise le début de la tache du processus
P1, P2, P3 dans
cet ordre.
- Pour i=1,2,3 le processus Sched n'autorise pas le début de la
tache Pi si une tache Pi précédente Pi a débuté mais non termine'
- Écrire un premier agent Sched satisfaisant ces contraintes.
- Écrire les contraintes dans le langage CCS.
- Vérifier que cet agent satisfait bien les contraintes.
Peut on deviser des problèmes avec son désavantage ?
- Utiliser la composition parallèle pour améliorer le
comportement du processus
Sched. Vérifier qu'il satisfait les contraintes.
- Itérer le point précédent.
Luigi
Santocanale
Dernière modification : Mon Feb 9 13:02:16 CET 2004