V - PowerPoint PPT Presentation

About This Presentation
Title:

V

Description:

Instructions gard es (affectations, lecture / criture) Choix ind terministe. R p tition ... Interpr tation : ensemble de mots (affectations) menant au n ud 1 ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 47
Provided by: ema157
Category:

less

Transcript and Presenter's Notes

Title: V


1
Vérification de systèmes matérielsavec les DDD
  • Systèmes spécifiés à un haut niveau dabstraction
  • DDD Structure de données exploitant le partage
    et la hiérarchie

Emmanuelle Encrenaz-Tiphène Maître de
Conférences à lUniversité Paris VI LIP6 En
délégation CNRS au Laboratoire Spécification et
Vérification (LSV) ENS-Cachan
En collaboration avec Vincent Beaudenon
2
Préambule Hardware / Software Codesign
  • Application réseau de tâches communicantes
  • liens privés avec bufferisation (réseaux de
    Khan)
  • particularisation données entières buffers
    bornés sélection
  • Exploration architecturale (différentes
    possibilités dimplantation des tâches)
  • Implantation matérielle (synthèse de haut niveau
    / synthèse des communications)
  • Chaîne de conception Disydent Pétrot Augé et
    al, 03

3
Vérification fonctionnelle de systèmes matériels
  • Simulations presque uniquement
  • Equivalence-Checking pour des blocs
    combinatoires / RTL
  • Symbolic Model-Checking pour des petits blocs
    (10 KG)
  • Méthodes  semi-formelles  prennent le pas sur
    SMC
  • LTL sur séquences bornées ? moniteurs incorporés
    dans la simulation
  • CTL à profondeur bornée ? déroulement explicite
    de larbre dexécution
  • Démonstrations assistées (architectures
    spécifiques cœurs de processeurs / traitement
    du signal)

4
Notre objectif
  • Construire un Model-Checker Symbolique pour des
    systèmes décrits sous forme de graphe de tâches.
  • Représentation symbolique densembles détats du
    système opérations ensemblistes (?, ?, ?)
  • Données entières / structurées
  • Canaux de taille variable
  • Opérateurs Post et Pré sur la représentation
    symbolique de lensemble des états, associés à la
    sémantique des actions du graphe de tâches.

5
Plan de lexposé
  • Modélisation de systèmes dans un sous-ensemble de
    ProMeLa
  • Représentation symbolique Structure de donnée
    DDD
  • Représentation des ensembles détats
  • Opérations ensemblistes
  • Homomorphismes
  • Homomorphismes pour instructions ProMeLa
  • Introduction de la hiérarchie
  • Application à la vérification de propriétés CTL
  • Exemples classiques
  • Réseau VCI-SPIN
  • Conclusion

6
La plate-forme de vérification ProMeLa-SPIN
G. Holzmann 97
  • Langage ProMeLa description dapplications
    concurrentes, dynamiques, asynchrones,
    communication par buffers bornés et variables
    partagées
  • Vérification de propriétés de sûreté et de
    vivacité par exploration du graphe des états
    accessibles
  • Représentation explicite des états
  • Réduction de lespace à analyser (techniques
    dordre partiel / compactage)
  • Applicable pour des systèmes "séquentiels"
    comportant 106 à 107 états

7
Un sous-ensemble de ProMeLa
  • Variables globales
  • Types scalaires (basés sur entier) / Type produit
  • Tableaux
  • Canaux (bornés)
  • Processus concurrents
  • Variables locales
  • Instructions gardées (affectations, lecture /
    écriture)
  • Choix indéterministe
  • Répétition indéterministe
  • Pas dinstanciation dynamique de processus (run
    est exclu)
  • Les processus nont pas de paramètres

8
Exemple de description
  • proctype proc_port_in0_0() MOT mess bit
    reserve bit current_clock0
  • mtype sortie_down bit jeton 1 do
    (clock current_clock) -gt current_clock
    !current_clock x0_d0_spin_data_in?mess-gt
    if (((mess.addest gtgt
    level_num0_0) 3) level_id0_0) -gt /
    Traitement des ports DOWN. / sortie_down
    (mess.addest gtgt (level_num0_0-1)) 1
  • if (sortie_down 0)
    -gt poss_out0_0?jeton do
    x0_d0_spin_data_out!mess
    if mess.tag
    FIN -gt atomicposs_out0_0!jeton goto
    SUITE_DOWN else -gt
    x0_d0_spin_data_in?mess fi

variables locales
lecture dans un canal
affectation
garde
écriture dans un canal
9
Représentation symbolique détats
  • Diagrammes de Décision de Données (DDD)
  • Structure de donnée pour représenter les
    ensembles détats.
  • (LIP6 / LaBRI ) arbres partagés.
  • projet Clovis DGA 01
  • Application aux réseaux de Petri étendus ATPN
    02 FORTE 04 FORTE 05
  • Variables décisionnelles de type fini
  • Représentation des chemins menant à 1 ou T
  • Exploitation du partage des sous-arbres
    isomorphes
  • Opérations ensemblistes parcours attelé des 2
    DDD (polynômial)
  • Modification  la plus locale possible 
    homomorphisme

10
DDD Structure
  • Nœuds variables
  • Arcs valeur dans les entiers
  • Contrainte un seul arc dune étiquette donnée en
    sortie dun nœud

a
1
2
partage
b
2
1
c
1
1

Interprétation ensemble de mots (affectations)
menant au nœud 1 Efficacité partage
11
DDD Normalisation
  • Les chemins invalides ne sont pas représentés
  • Conséquence domaine des variables inconnu a
    priori
  • Représentation de lensemble vide ? nœud
    terminal 0

a
a
1
2
1
2
normalisation
b
c
b
1
2
2
1
0
1
partage
c
1
1
c
0
1
1
0
1
1
0
Représentation canonique des DDD (classe
déquivalence)
12
DDD Opérations ensemblistes (1)
Un DDD est un ensemble de mots Opérations
ensemblistes \
Exemple
a
a
A B
A
B
AB
13
DDD Opérations ensemblistes (2)
  • Un DDD est un ensemble de mots Opération de
    concaténation .

Exemple
v0
. . .
A
A . B
v1
. . .
B
1
14
DDD Homomorphisme
  • Définition ? d, d deux DDD bien définis
  • Un homomorphisme est une fonction ? telle que
  • ? (0) 0
  • ? (d) ? (d) ? (d d)

réunion
réunion
15
Homomorphismes inductifs
Homomorphisme défini localement
Exemple affectation dune valeur constante
?varval
16
Homomorphismes inductifs
Affectation v1 Constante
  • SetCst(var,val) (1) T (une erreur)
  • e ? Id si e var
  • SetCst(var,val) (e,x)
  • e ? SetCst(var,val) sinon

val
x
17
Autres homomorphismes inductifs
  • SetVar (v1,v2)
  • SetVarExpr (var, expr)
  • SelVarCst (var, const)
  • SelExp (expr)

18
DDD pour les programmes ProMeLa
  • Un état du programme
  • variables globales
  • chaque processus en cours dexécution
  • son compteur ordinal
  • ses variables locales
  • Etat initial concaténation de toutes les
    variables dans un ordre figé

Instruction ProMeLa construction de deux
homomorphismes Post calcule les successeurs
par lapplication dune instruction Pré
calcule les prédécesseurs potentiels résultants
de lexécution dune instruction
19
Homomorphismes inductifs Promela-DDD
  • Affectation gardée
  • exp_g -gt x 5
  • Indéterminisme
  • if
  • exp_g1 -gt (2.)
  • exp_g2 -gt (3.)
  • fi
  • 4.
  • Ecriture dans un canal
  • c!x

SetCst(pc,2) o SetCst(x,5) o SelExp(pc1 ?
exp_g)
SetCst(pc,2) o SelExp(pc1 ? exp_g1)
SetCst(pc,3) o SelExp(pc1 ? exp_g2)
SetCst(pc,2) o SetVarFifo(c,x) o SelCst(pc1)
20
Calcul de lensemble des états accessibles
  • New Init
  • Reached ?
  • While New ? ? loop
  • tmp New
  • Forall process p loop
  • Forall instruction i loop
  • To Postp,i(tmp)
  • tmp To tmp
  • Endloop
  • Endloop
  • New tmp \ reached
  • Reached tmp reached
  • Endloop
  • Return Reached

21
Evaluation de formules CTL
  • Opérateur Pré
  • Pb Toutes les opérations ne sont pas
    inversibles x 4
  • Approche classique (2 à 3 passes)
  • élargissement à toutes les valeurs possibles,
    puis
  • restriction aux états accessibles
  • Opérateur ad-hoc en 1 passe

Evaluation de "EF p"
22
Comparaison avec les BDD
  • Opérateurs Postp,i et Prép,i implantés sur la
    bibliothèque BuDDy Lind-Nielsen, Reif Andersen
    CAV 99
  • Représentation des opérations arithmétiques sur
    des vecteurs de bits
  • Domaine des variables déterminé a priori (type
    déclaré)
  • Traitements pour réaliser Postp,i(E) si i décrit
    x y
  • Un seul jeu de variable
  • Abstraction de x dans E Ex
  • Construction de G (x ? y) (x ? y) ? (? x ?
    ?y)
  • Contrainte de Ex par G Ex ? G

23
Résultats sur exemples classiques (DDD plats)
  • Dichotomie méthode énumérative / méthode
    symbolique
  • Systèmes fortement séquentiels jusquà 106 ou 107
    états SPIN donne de meilleurs résultats.
    (sliding window, Peterson, Bakery)
  • Systèmes fortement concurrents jusquà 1010 états
    (au delà si très réguliers) BDD et DDD donnent
    de meilleurs résultats. (Philosophes, élection
    sur anneau)
  • BDD vs DDD
  • BDD avec réordonnancement dynamique et DDD
    statique sont comparables.
  • Lorsquun  bon ordre  peut être exploité, les
    DDD statiques présentent de meilleures
    performances que BDD ou DDD ordre qcq.
  • Limitations des DDD ordre / gestion des
    expressions / longueur des chemins

24
Introduction de la hiérarchie dans les DDD (1)
  • HDD Les valuations des arcs sont des DDD

2
DDD
HDD
25
Introduction de la hiérarchie dans les DDD (2)
  • Les HDD sont des DDD qui bénéficient
  • Augmentation du partage,
  • Réduction de la longueur des chemins de la racine
    vers 1.
  • Ajustement des homomorphismes
  • Propagation de lhomomorphisme
  • au nœud suivant au même niveau de la
    hiérarchie,
  • au nœud racine du DDD de niveau de hiérarchie
    inférieur
  • Occasionnellement, nécessité daplanir localement
    la hiérarchie

26
HDD pour Programme ProMeLa
variable produit
Saturation
Lors du calcul de lensemble des états
accessibles, réordonner le franchissement des
instructions pour saturer les couches basses du
HDD
Hiérarchisation de létat
27
Résultats sur exemples classiques (HDD)
  • Confirment la tendance observée avec les DDD
    plats
  • SPIN reste meilleur sur les systèmes très
    séquentiels (Sliding window, Peterson, Bakery)
  • HDD saturation sont bien meilleurs que les BDD
    ou les DDD plats sur des systèmes très parallèles
    (jusquà 1000 philosophes, jusquà 100 électeurs
    sur lanneau)

28
Réseau VCI-SPIN (1)
Apparition dun interblocage
SPIN network
VCI-SPIN wrappers
I3
I4
T3
T4
29
Réseau VCI-SPIN (2)
Evitement de linterblocage séparer les
requêtes et réponses sur les liens descendants
30
Vérification avec SPIN et HDD
  • Modèle ProMeLa
  • Pour chaque routeur
  • 1 processus par port dentrée (4)
  • 1 mécanisme dexclusivité daccès par port de
    sortie (4)
  • Pour chaque initiateur
  • 2 processus (1 émetteur requête / 1 récepteur
    réponse)
  • Pour chaque cible
  • 1 processus
  • Messages bufferisés en entrées de chaque port
    (buffers de taille 1)

31
Vérification avec SPIN
  • Propriété de vivacité
  • émetteur 0 pourra toujours émettre un nouveau
    message 
  • Configuration à 2 routeurs, initiateurs et cibles
    fixés
  • Synchronisation des processus
  • Taille des messages fixée (1 à 7 paquets)
  • Vivacité, n6 propriété vérifiée en 36000 s et
    100 MB
  • Accessibilité, n 6 construit en 512 s et 9 MB

32
Vérification avec HDD
  • Propriété de sûreté
  • Absence détat puits
  • Configurations à 2 et 4 routeurs, initiateurs et
    cibles variables
  • Taille des messages variable (de 1 à 7 paquets)
  • Pour la configuration restreinte
  • Accessibilité, n6, synchrone, 2 routeurs 33 s,
    139 MB
  • Pour les configurations plus libres
  • Accessibilité, n1 à 7, asynchrone, 4 routeurs,
    config libre 7881 s et 492 MB
  • ou 519 s et 1,5 GB

33
Conclusion
  • Construction dun model-checker pour des systèmes
    statiques décrits en ProMeLa
  • DDD Représentation intéressante pour les
    systèmes présentant un fort parallélisme
  • Hiérarchie
  • Saturation
  • Analyse complémentaire à loutil SPIN
  • Certains systèmes sont analysés très rapidement
    par SPIN et pas de résultats avec HDD, et
    réciproquement
  • Propriétés de vivacité / de sûreté

34
Perspectives
  • Amélioration de lalgorithmique sur les HDD
  • Éviter les applatissements locaux
  • Augmenter la prise en compte de la hiérarchie
  • Découpage dichotomique du système
  • Extension à des systèmes dynamiques

35
(No Transcript)
36
Résultats sur exemples classiques (DDD plats)
BET Majestic 04
  • Calcul daccessibilité une propriété " AG AF
    but atteint  
  • Temps de calcul (en s) / Mémoire nécessaire (en
    MB)
  • Philosophes
  • SPIN BDD DDD DDD-O
  • 15 2251/1067 3801200/96 18 K-/397 545/30
  • 50 -/- -/- -/- 8006/996
  • Election sur anneau
  • SPIN BDD DDD DDD-O
  • 6 262/144 50565394/144 345/11 373/11
  • 10 -/- -/- 4533-/663 716-/77

37
Résultats sur exemples classiques (DDD plats)
  • Sliding window
  • SPIN BDD DDD DDD-O
  • 2 0/8 552221/102 486142/18 662206/17
  • 3 29/450 65 K 63 K /332 480 K - /565 480
    K -/475
  • 4 -/- -/- -/- -/-
  • Exclusion Peterson
  • SPIN BDD DDD
  • 3 0/6 1739 /93 74/6
  • 5 -/- 470 K - /900 -/-
  • Bakery
  • SPIN BDD DDD
  • 4 0/5 500/94 170/9
  • 5 1385/6 12310/93 3795/46
  • 6 -/- -/- 6190147/455

38
Résultats sur exemples classiques (HDD)
  • Calcul daccessibilité uniquement
  • Philosophes
  • DDD DDD-O HDD HDD-sat
  • 15 18 K-/397 545/30 25/16 0/2
  • 50 -/- 8006/996 3308/532 1/9
  • 1000 -/- -/- -/- 258/1343
  • Election sur anneau
  • DDD DDD-O HDD HDD-sat
  • 6 345/11 373/11 6/4 0/4
  • 10 4533-/663 716-/77 333/61 2/14
  • 20 -/- -/- 9891/771 14/65
  • 100 -/- -/- -/- 443/1866
  • Systèmes séquentiels Amélioration par rapport
    aux DDD plats mais moins bons que SPIN

39
DDD Approximation
  • Contrainte un seul arc dune étiquette donnée
    en sortie dun nœud
  • Conséquence des opérations peuvent conduire à
    des résultats indéterminés
  • Représentation de lapproximation ? nœud terminal
    T

a
2
1
  • DDD bien défini
  • absence de nœud terminal T
  • Relation  mieux-défini  ?
  • relation dordre sur les DDD

a
T
1
2
b
1
1
1
  • Bonnes propriétés algébriques des opérations

40
DDD Opérations (2)
Exemple dopération faisant apparaître une
approximation


41
DDD Homomorphismes
  • Définition ? d, d deux DDD bien définis
  • Un homomorphisme est une fonction ? telle que
  • ? (0) 0
  • ? (d) ? (d) ? (d d)
  • Exemples
  • d Id
  • Id \ d
  • Id . d
  • ?1 ?2
  • ?1 o ?2
  • Cas général ? d, d deux DDD
  • ? (0) 0
  • ? (d) ? (d) ? ? (d d)
  • d ? d ? ? (d) ? ? (d)

42
DDD Homomorphismes inductifs (1)
  • Famille dhomomorphismes ?i définis localement
  • ?i (0) 0
  • ?i (T) T
  • ?i (1) ci (une constante)
  • ?i (d) définition locale à la racine de d et
    à ses valuations
  • Exemple
  • SetCst(var, val)(1) T
  • SetCst(var, val)(e, x)

val
e ? Id si e var e ?
SetCst(var,val) sinon
x
43
DDD Homomorphismes inductifs (2)
1
0
SetCst(b,2) (a ? b ? 1 ) SetCst(b,2) (a ?
c ? 1 )
SetCst(b,2)
1
2
44
DDD Homomorphismes inductifs (3)
Exemple var1 var2 SetVar
Down
Up
Up(var, val)(1) T Up(var, val)(e, x) e
? var ? Id
x
val
45
DDD Homomorphismes inductifs (4)
Exemple dexécution de SetVar b d
SetVar(b, d) (a ? b ? c ? d ? 1) a ?
SetVar(b, d) (b ? c ? d ? 1) a ? Down(b, d)
(c ? d ? 1) a ? Up(c, 3) o Down(b, d) (d ?
1) a ? Up(c, 3) (b ? d ? Id(1)) a ? Up(c, 3)
(b ? d ? 1) a ? b ? c ? d ? 1
1
2
3
4
1
2
3
4
3
4
1
1
4
1
4
4
1
4
4
1
4
3
4
46
Homomorphismes inductifs
Affectation V1 V2
  • SetVar(v1,v2) (1) T (une erreur)
  • Down(v1,v2) si e v1
  • SetVar(v1,v2) (e,x) e ? SetCst(v1,x) si e
    v2
  • e ? SetVar(v1,v2) sinon
  • Down(v1,v2 ) (1) T
  • Down (v1,v2) (e,x) v1 ? e ? Id si e
    v2
  • Up(e, x) o Down(v1, v2) sinon
  • Up(var, val)(1) T
  • Up(var, val)(e, x) e ? var ? Id
Write a Comment
User Comments (0)
About PowerShow.com