IFT 2251 Génie Logiciel Spécification de Processus Concurrents

Slides:



Advertisements
Présentations similaires
La Méthode de Simplexe Standardisation
Advertisements

Fabrice Lauri, François Charpillet, Daniel Szer
AVANCEMENT DES TRAVAUX DE THESE
Calcul géométrique avec des données incertaines
Calculs de complexité d'algorithmes
Statistique et probabilité Série n° 1
Automatismes.
Critère d’ordonnancement en temps réel Partie III
Systèmes en temps réel Modélisation du comportement en temps réel avec UML.
Urbanisation des Systèmes d'Information - Henry Boccon-Gibod1 Urbanisation de système d'information PLM 4 (Product Lifecycle Management) Préoccupation.
Les cas d’utilisation (use cases)
Module d’Enseignement à Distance pour l’Architecture Logicielle
Module d’Enseignement à Distance pour l’Architecture Logicielle
Le Modèle Logique de Données
"Recherche de scénarios redoutés à partir d'un modèle réseau de Petri"
Ordonnancement des mouvements de deux robots
variable aléatoire Discrète
1 Théorie des Graphes Cycle Eulérien. 2 Rappels de définitions On dit qu'une chaîne est un chemin passant par toutes les arêtes du graphe. On dit qu'un.
Pour analyser les mécanismes de formation de prix, les économistes ont élaboré un modèle simplifié de la réalité. Ils ont ainsi poser les hypothèses suivantes.
Programme de mercatique
Langage SysML.
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
le profil UML en temps réel MARTE
Analyse et Conception des Systèmes d’Informations
Synchronisation et communication entre processus
2-1 CIRCUITS ÉLECTRIQUES SIMPLES
07/24/09 1.
(ref : Bray section pages 283 à 290)
Cours Corporate finance Eléments de théorie du portefeuille Le Medaf
Chap. 8: 7.Le monopole discriminant
8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.
Expressions régulières et hash tables
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
IFT Complexité et NP-complétude
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Courbes de Bézier.
CSI3525: Concepts des Languages de Programmation
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
2. Le Monopole Hypothèse de base du modèle:
LE CHOIX DU CONSOMMATEUR ET LA DEMANDE
L’OFFRE ET LA DEMANDE.
Chapitre 3 Syntaxe et sémantique.
Chapitre 3 La cinématique à une dimension
Ordonnancement de tâches
Initiation à la conception des systèmes d'informations
Le diagramme de séquences
Inéquations du premier degré à une inconnue
Résoudre une équation du 1er degré à une inconnue
Atelier de formation : MAT optimisation II (les graphes).
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Modélisation des opérations Spécifier les transformations détat que lon attend des services de la machine Létat dune machine entièrement déterminée par.
Programmation linéaire en nombres entiers : les méthodes de troncature
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Structures des données
1 Modèle pédagogique d’un système d’apprentissage (SA)
ANALYSE METHODE & OUTILS
1. Présentation générale du système
Amélioration de la simulation stochastique
Rappels de statistiques descriptives
Chapitre I Modélisation optimisation I- Optimisation de fonctions d’une seule variable 1 Introduction En gestion, on est souvent confronté à des situations.
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Conception Hiver 2002 Petko Valtchev.
Université Pierre et Marie Curie Laboratoire d’Informatique de Paris VI Département ASIM Analyse et résultats sur le dimensionnement des mémoires pour.
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Spécification de Processus Concurrents Hiver 2002 Petko Valtchev.
Modèles d’entrelacement
2.4 Le langage SFC - Un langage de description de systèmes séquentiels
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
Réseaux de Petri et suivi du joueur
IFT 2251 Génie Logiciel La Modélisation du Comportement
Transcription de la présentation:

IFT 2251 Génie Logiciel Spécification de Processus Concurrents Hiver 2002 Petko Valtchev

Réseaux de Petri (Introduction) Formalisme Graphique Objectif: Modéliser le comportement dynamique d’un système discret. Modèle opérationnel exprimant à la fois le flot de contrôle et le flot de données. Avantages: Permet de considérer la structure du système et l’évolution du flot de données. Permet de représenter les changements d’états et la causalité des événements que provoquent ces changements. Modèle solidement assis sur des bases formelles.

Un réseau de Petri est composé: Éléments d’un Réseaux Un réseau de Petri est composé: d’un ensemble fini de places d’un ensemble fini de transitions d’un ensemble fini de flèches reliant - soit une place à une transition, - soit une transition à une place. p t

Étiquetage des Éléments Chaque place est étiquetée par son nom. Chaque transition est étiquetée par son nom. Une flèche peut être étiquetée d’un nombre entier (>1) indiquant le nombre d’occurrence de cette flèche, c’est-à-dire, le nombre de jetons nécessaires pour que la flèche soit « activée ». S’il n’y a pas d’étiquette, l’occurrence est 1, par défaut. t3 p1 p3 t1 3 2 p6 p2 p4 t2 p5

Un réseau de Petri est un quadruplet Définition Formelle P est un ensemble fini de places, T est un ensemble fini de transitions, Pre : P x T  N est l’application « place d’entrée », Post : P x T  N est l’application « place de sortie ». Un réseau de Petri est un quadruplet R = <P,T,Pre, Post> P= {p1,p2,p3,p4} ; T={t1,t2} Pre(p1,t1)= 2; Pre(p2,t1)=1 Pre(p3,t2)=1 Post(p3,t1)=1; Post(p4,t2)=1 Le reste: Post(pi,tj)=0 et Pre(pi,tj)=0 p1 t1 2 p2 t2 p3 p4

Précisions Terminologique Places de sortie d’une transition t = places vers lesquelles sont orientées les flèches qui sortent de la transition. Out(t) = {p  P | Post(p,t) > 0} Places d’entrée d’une transition t = places dont proviennent les flèches entrant de la transition. In(t) = {p  P | Pre(p,t) > 0} p1 In(t1)= {p1,p2} In(t2)= {p3} Out(t1)= {p3} Out(t2)= {p4} t1 2 p2 t2 p3 p4

Réseau Marqué Marquage M(p1)=3 M(p2)=1 M(p3)=1 M(p4)=0 M(p5)=0 M(p6)=0 On définit l’état d’un réseau de Petri en plaçant des jetons dans ses places. Chaque état est caractérisé par un marquage indiquant le nombre de jetons contenus par chaque place. Un marquage = Affectation d’un entier non-négatif à chaque place. R est un réseau de Petri <P,T,Pre, Post> M est un marquage, cad une application M : P  N, M(p) est le nombre de jetons dans p  P Un réseau marqué est un couple N = <R, M> Marquage M(p1)=3 M(p2)=1 M(p3)=1 M(p4)=0 M(p5)=0 M(p6)=0 t3 p1 p3 t1 3 2 p6 2 p4 p5 p2 t2

Règles de Franchissement Une transition est dite « franchissable » si chacune de ses places d’entrée contient un nombre de jetons supérieur ou égal à celui indiqué sur la flèche correspondante. Une transition t est franchissable ssi  p  P, M(p) ³ Pre(p,t), ou alternativement,  p  In(t), M(p) ³ Pre(p,t), t3 p1 p3 t1 3 2 p6 2 p4 p5 p2 t2

Franchissement (suite) Une transition franchissable peut être franchie (ou tirée). Lorsqu’une transition est franchie, des jetons des places d’entrée sont déplacés vers les places de sortie. Le nombre exact des jetons retirées/rajoutées pour une place donnée correspond à l’étiquette sur la flèche correspondante. Le franchissement d’une transition franchissable t transforme le marquage initial M en le nouveau marquage M’ tel que:  p  P, M’(p) = M(p) – Pre(p,t) + Post(p,t) p1 t3 p3 t1 3 2 p6 2 p4 p5 p2 t2

Non-déterminisme t2 ou t3 ? Si plus d’une transition est franchissable, le choix de la transition à franchir est non-déterministe. t2 ou t3 ? t3 p1 p3 t1 3 2 p6 2 p4 p5 p2 t2

Séquence Franchissement Étant donnée un marquage initial d’un RP, une séquence de franchissement est une suite de transitions franchies dans l’ordre, l’une après l’autre. Cette séquence est dénotée par une chaîne de transitions <t1, …, tn> telle que: t1 est franchissable depuis le marquage initial t2 est franchissable depuis le marquage obtenu par la tirée de t1, etc. t3 Séquences de franchissement possibles: <t1,t2> <t1, t3> <t3,t1> p1 p3 t1 3 2 p6 2 p4 p5 Mi <s> Mj p2 t2

Sémantique des Réseaux Un réseaux de Petri peut être interprété en termes de processus, d’actions et de ressources. Les transitions servent à modéliser les actions des processus. Les jetons représentent des ressources consommables. Le franchissement d’une transition représente l’exécution d’une action (consommation & production de ressources). Les flèches entrantes indiquent les conditions à satisfaire avant l’action (ressources nécessaires). Les flèches sortantes représentent les conditions à satisfaire après l’action (ressources à produire). La présence d’un jeton marque la satisfaction, partielle ou totale, d’une condition (i.e. présence d’une ressource).

Producteur-Consommateur Un exemple concret (et simple!) de réseau de Petri. Objectif : Modéliser la coordination entre deux processus dont un est le producteur et l’autre le consommateur d’une ressource. Le producteur produit un objet (item) et le dépose dans un tampon (bac), Le consommateur prend l’objet dans le bac et le « consomme ». Contrainte: avant que le consommateur ne puisse exécuter l’action « consommer », le producteur doit avoir fini l’action « produire ». Utilité: simulation de processus industriels (à de fins d’automatisation), modélisation de traitement de données asynchrone.

Prod.-Cons., le Réseau Producteur: Consommateur: produire prendre déposer Consommateur: prendre consommer Prêt-à-produire Prêt-à-déposer Prêt-à-prendre Prêt-à-consommer bac dépose produit consomme prend

Modéliser la Concurrence Dans la réalité, les ressources doivent souvent être partagées. De plus, celles-ci ont leurs limites, c’est-à-dire qu’elles sont épuisables. p1 p2 t1 p9 t2 Plus de jeton: Famine? Interblocage? p3 p4 t3 t4 p5 p6 2 2 t5 t6 t6 t6 p7 p8

Concurrence t1 et t2 sont concurrentes … mais pas t3 et t4 Transitions concurrentes : un couple de transitions dont le franchissement de l’une n’empêche pas celui de l’autre (quel que soit le marquage). Un réseau de Petri modélise la concurrence comme un entrelacement non-déterministe: a || b = a.b V b.a p1 p2 t1 p9 t2 t1 et t2 sont concurrentes … mais pas t3 et t4 p3 p4 t3 t4 p5 p6

Concurrence Structurelle vs Effective Concurrence structurelle: Deux transitions t1 et t2 sont concurrentes structurellement si elles n’ont aucune place d’entrée commune i.e. In(t1)  In(t2) =  Concurrence effective: Deux transitions t1 et t2 sont concurrentes effectivement pour un marquage donnée M ssi elles sont concurrentes structurellement et sont franchissables i.e. et  p  P, M(p) ³ Pre(p,t1) et M(p) ³ Pre(p,t2)

Conflit Transitions conflictuelles : Ensemble de transitions dont le franchissement de l’une empêche le franchissement de l’autre. p1 Si on tire t3, t4 n’est plus franchissable Le choix entre t3 et t4 est non déterministe. t3 et t4 sont conflictuelles t1 p9 t2 p3 p4 t3 t4 p5 p6

Conflit Structurel vs Effectif Conflit structurel: Deux transitions t1 et t2 sont en conflit structurel si elles ont au moins une place d’entrée en commun i.e. In(t1)  In(t2)   Conflit effectif: Deux transitions t1 et t2 sont en conflit effectif pour un marquage M ssi elles sont en conflit structurel et sont franchissables de façon exclusive i.e.  p  P, M(p) ³ Pre(p,t1) et M(p) ³ Pre(p,t2) et  p  P, M(p) < Pre(p,t1) + Pre(p,t2)

Situation de Famine « Famine (starvation) : Un processus (une partie du réseau) est en situation de famine s’il se voit refuser l’accès à une ressource pendant un temps indéfini.  » Le modèle des RP de base n’impose pas de politique pour résoudre les conflits et ordonnancer le franchissement des transitions. Il se peut donc qu’un processus soit privé, pendant une période indéfinie, d’une ressource, car la séquence des transitions franchies ne lui permet jamais de consommer cette ressource. p1 Processus B t1 p9 t2 p3 p4 <t1,t2,t3,t1,t3,t1,t3,…> Séquence de franchissement non équitable. Processus B en famine! t3 t4 Processus A p5 p6

Situation d’Interblocage « Interblocage (deadlock) : un RP est dit être en situation d’interblocage lorsque, dans un marquage donné M, aucune transition n’est franchissable.  » Cas typique: Privation mutuelle Le processus A est arrêté car il a besoin d’une ressource détenue par B, alors que le processus B est arrêté car il a besoin d’une ressource détenue par A. p1 p2 p3 p4 t1 t2

Interblocage (exemple) <t1,t2,t3,t4> p5 p6 2 2 t5 Mn(p5)=1 Mn(p6)=1 Mn(_) = 0 t6 t8 p7 t7 p8 Interblocage!!

Bonnes Propriétés des RP K- borné: Un RdP est k-borné si le marquage de chaque place est toujours inférieur ou égal à k, quelle que soit la séquence de franchissement réalisée. Vivant: Un RdP est vivant si pour toute transition et pour tout marquage accessible, il existe une séquence de franchissement permettant de franchir cette transition. N.B. Un RP vivant ne peut pas se retrouvé en situation d’interblocage.

K-Borné (exemple) Réseau non borné Réseau 2-borné

Vivacité (exemple) Réseau vivant Réseau non vivant p1 t1 t3 p2 p1 p3

Réseaux de Petri, Bilan      Bien adapté pour la modélisation de systèmes concurrents et/ou temps-réel. Possibilités intéressantes de vérification et d’évaluation des performances. Outils CASE pour développés, analyser et vérifier les modèle de réseaux de Petri. Complexité Lacunes: la version « classique» des RdP ne permet pas : d’éviter les situations de famine, de distinguer les données d’une place selon les valeurs de leurs attributs, de prendre en compte les contraintes temporelles, d’offrir une représentation à différents niveaux d’abstraction.    

Modèles Étendus de RP Il existe des modèles avancés de réseaux de Petri permettant d’étendre leur expressivité: Réseaux de Petri avec politique d’ordonnancement : possibilité d’attacher des priorités aux transitions permettant de déterminer quelle transition tirée parmi toutes celles franchissables. Réseaux de Petri hiérarchiques : partitionnement des grands réseaux de Petri de manière récursive. Réseaux de Petri colorés : affectation de valeurs aux jetons. Réseaux de Petri temporisés : ajout de contraintes temporelles au niveau des transitions.