• Aucun résultat trouvé

Le protocole de transfert cellulaire (GSM)

7.3 Expérimentations

7.3.2 Le protocole de transfert cellulaire (GSM)

Le tableau de la figure 7.2 présente une troisième série de résultats. Il s’agit de résultats d’analyses de ressources menées sur trois implémentations différentes du protocole de trans-fert cellulaire dans le cadre des communications GSM. Nous avons présenté ce problème précédemment (chapitre 3, page 38), et nous interprétons maintenant les résultats obtenus à l’aide de notre prototype.

Les trois implémentations du protocole considéré diffèrent par l’utilisation d’une mémoire tampon (GSMbuff) ainsi que par la modélisation de comportements fins supplémentaires (GSMfull). L’espace d’états obtenus à l’aide de l’outil HDA peut alors croître en taille de plus de 1000%. Toutefois, non seulement les trois modèles présentent le même indice de ressources, mais ils présentent en fait également le même profil de ressources, c’est-à-dire qu’on en ex-trait des graphes de ressources identiques (selon une comparaison gérant implicitement l’alpha-conversion des variables de ressources). Du point de vue de leur consommation en ressources dynamiques, ces trois implémentations sont donc comparables et présentent les mêmes propriétés. Ce fait est intéressant en ce qu’il permet d’entrevoir une notion d’équiva-lence comportementale orientée autour de la consommation en ressources dynamiques des systèmes.

7.3.3 Le dîner des philosophes

Nous avons présenté dans le chapitre 3 (en page 36) une implémentation en Piccolo du fameux problème de concurrence du dîner des philosophes. Nous considérons cette fois l’abstraction qui peut avoir été faite d’un tel programme, exposé dans le listing 7.1.

Listing 7.1 – Dîner de 2 philosophes en slice-π def TicketGenerator ( gen ) =

new ( t i c k e t 1 ) . new ( t i c k e t 2 ) .

gen ! t i c k e t 1 . gen ! t i c k e t 2 . 0

def Philo ( gen , control , l e f t , r i g h t ) =

gen ? ( t i c k e t ) . (

l e f t ? ( x ) . r i g h t ? ( x ) . control ! t i c k e t . tau . PhiloBis [ gen , control , l e f t , r i g h t ] + r i g h t ? ( x ) . l e f t ? ( x ) . control ! t i c k e t . tau . PhiloBis [ gen , control , l e f t , r i g h t ] )

def PhiloBis ( gen , control , l e f t , r i g h t ) =

control ? ( x ) . (

l e f t ! x . r i g h t ! x . Philo [ gen , control , l e f t , r i g h t ] + r i g h t ! x . l e f t ! x . Philo [ gen , control , l e f t , r i g h t ] )

7.3. Expérimentations 129

Modèle Nombre de

processus Espace d’états

Graphe de ressources Indice de ressources philos2 7 133 20 1 philos3 10 2992 136 1 philos4 13 98245 4148 2

FIGURE7.3 – Résultats expérimentaux (sémantique slice-π)

def Fork ( f o r k ) =

fo r k ! x . f o r k ? ( x ) . Fork [ fo r k ]

def C o n t r o l l e r ( control ) =

control ? ( t i c k e t ) . control ! t i c k e t . C o n t r o l l e r [ control ] l o c a l ( gen ) .

l o c a l ( fork1 ) . l o c a l ( fork2 ) . ( ( ( ( ( ( Fork [ fork1 ] | Fork [ fork2 ] )

| Philo [ gen , control , fork1 , fork2 ] ) | Philo [ gen , control , fork2 , fork1 ] ) | TicketGenerator [ gen ] )

| C o n t r o l l e r [ control ] ) | C o n t r o l l e r [ control ] )

Les données ont été abstraites en des noms les représentant, tandis que les calculs sur ces données primitives ont été symbolisés par des événements silencieux . Enfin, le point méritant le plus d’attention est la transformation des créations de canaux de communication : les canaux , et sont créés à l’aide du mot-clélocal, tandis que les canaux et sont déclarés à l’aide du mot-clénew. On a donc utilisé les spécificités du calcul slice-π (chapitre 6) afin de préciser quelles ressources sont observables ou non.

Le tableau de la figure 7.3 présente les résultats des analyses menées sur ces spécifications slice-π.

Par ces exemples, nous souhaitons mettre en avant plusieurs aspects.

D’abord, l’algorithme de génération d’espace d’états pour des processus en slice-π a été

implémenté et génère des espaces de près de 100000 états en quelques secondes (ici, pour 13 processus dont les actions peuvent être entrelacées).

Nous montrons également par cet exemple d’application que les résultats quantitatifs peuvent aussi avoir une certaine valeur qualitative. Par la contrainte selon laquelle seuls les tickets attribués aux philosophes lorsqu’ils passent à table sont observables dans notre modèle, on calcule en fait non plus un nombre de ressources mais une garantie sur l’ensemble des exécutions du système. Ainsi, selon les résultats du tableau, pour 2 ou 3 philosophes, seul 1 ticket peut être utilisé à un moment donné. Pour 4 philosophes, seul 2 tickets au maximum

130 Environnement d’analyse de ressources

peuvent être utilisés au même instant (c’est-à-dire sans conflit). Ces données confirment que notre modélisation respecte bien la propriété selon laquelle au plus† n/2 ‡ philosophes

peuvent accéder aux fourchettes qui leur sont nécessaires pour se sustenter.

7.4 Conclusion

Nous avons présenté dans ce chapitre l’architecture générale de notre prototype d’analyse de ressources, ainsi que discuté de quelques points d’implémentation précis et de résultats expérimentaux.

Dans notre exposé des analyses de ressources, nous nous sommes efforcés de proposer un cadre algorithmique le plus générique possible. Cette ambition se retrouve dans l’architecture modulaire de notre prototype, pour lequel les sémantiques d’interprétation des termes en

π-calcul sont interchangeables selon le type d’analyse souhaité. À terme, nous souhaiterions

également proposer une brique d’abstraction automatique du comportement non seulement de programmes piccolo, mais également d’autres types de description de systèmes. En effet, il peut être intéressant d’analyser en termes quantitatifs d’autres types de systèmes dans lesquels on retrouve tout de même la notion d’émission / réception effectués par différents agents cohabitant en parallèle3.

Enfin, les résultats obtenus grâce à nos prototypes sont prometteurs. Nous avons montré à travers nos tests que, d’une part, les indices de ressources ne sont pas qu’un indicateur de quantité de mémoire mais reflètent directement des propriétés du système étudié. D’autre part, les graphes de ressources sont considérablement plus petits que les espaces d’états, et permettent des analyses plus efficaces en pratique. Ces analyses quantitatives peuvent également servir à l’attribution "optimale" d’identités aux ressources. En répercutant ces identités dans les étiquettes des transitions de l’espace d’états de départ, on prépare une minimisation de cet espace par des algorithmes off-line classiques.

3. Citons par exemple l’abstraction de la gestion mémoire dans un programme C, sous la forme d’émission de données (pour l’écriture) et de réception de données (pour la lecture). Les pointeurs mémoire sont alors considérés comme des canaux et leur analyse quantitative trouve de nombreuses applications pratiques.

C

H AP ITRE

8

CONCLUSION ET PERSPECTIVES

D

ANS CETTE CONCLUSIONnous souhaitons rappeler les contributions apportées dans le cadre de ce travail de thèse, mais surtout les discuter et anticiper des pistes et travaux futurs. Nous reprenons donc un par un les principaux modèles présentés tout au long de ce manuscrit, chacun dans une section dédiée.

8.1 Lesν-automates

Nous avons présenté dans le chapitre 4 le formalisme desν-automates, sortes d’automates

à mémoire permettant la reconnaissance de langages construits depuis un alphabet infini. À travers de nombreux exemples, nous avons tenté de détailler le principe de reconnais-sance de ces automates, ainsi que de commenter les résultats quant à la quantité de symboles différents nécessaires au minimum pour permettre leur bon fonctionnement. Ces résultats sont accompagnés d’une classification desν-automates en plusieurs familles selon les

pro-priétés qu’ils vérifient intrinsèquement :

— Lesν-automates finis élémentaires restreignent le nombre de fois qu’une variable peut

être réallouée dans un chemin.

— Lesν-automates à portées minimales définissent les portées les plus courtes possibles

de variables sans pour autant altérer les capacités de reconnaissance deν-mots.

— Lesν-automates bornés sont caractérisés par une borne minimale de consommation

qui représente le nombre deν-symboles distincts nécessaire au bon fonctionnement de

l’automate.

Nous avons mis en évidence le fait que la sous-classe desν-automates élémentaires

132 Conclusion et perspectives

autres sous-classes identifiées, à travers notamment des études de complexité des problèmes classiques des automates :

Également, à notre sens, d’autres variantes desν-automates manquent à l’appel. En effet,

les différents principes d’allocation définis autour du principe de reconnaissance deν-mots

par desν-automates ne sont pas triviaux. Leur mise en œuvre algorithmique, bien que possible

directement, ne serait alors pas optimale. Le passage par des variantes déterministes des

ν-automates pourraient permettre d’aller dans ce sens.

Enfin, nous avons qualifié lesν-automates de cette thèse comme finis, en opposition à

une possible classe deν-automates infinis. Il s’agirait en fait de ν-automates à états finis, mais

permettant la reconnaissance deν-mots de longueur infinie (à l’instar des automates de Büchi

pour les mots définis à l’aide d’un ensemble fini de symboles). De telsν-automates permettrait

notamment de raisonner sur les processus dont le comportement est infini, et éventuellement de dégager une catégorie intéressante de processus au comportement infini et à ressources finies.