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 : 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:
  1. Écrire un premier agent Sched satisfaisant ces contraintes.
  2. Écrire les contraintes dans le langage CCS.
  3. Vérifier que cet agent satisfait bien les contraintes. Peut on deviser des problèmes avec son désavantage ?
  4. Utiliser la composition parallèle pour améliorer le comportement du processus Sched. Vérifier qu'il satisfait les contraintes.
  5. Itérer le point précédent.

Luigi Santocanale
Dernière modification : Mon Feb 9 13:02:16 CET 2004