12.07.2015 Views

Calcul des etats atteignables de programmes Esterel partitionne ...

Calcul des etats atteignables de programmes Esterel partitionne ...

Calcul des etats atteignables de programmes Esterel partitionne ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5.1. ALGORITHME PARTITIONNÉ 635.1.2 Elargissement <strong><strong>de</strong>s</strong> blocs actifs (calcul <strong>de</strong> area ′ )Lorsque l’ensemble area <strong><strong>de</strong>s</strong> blocs actifs a besoin d’être élargi, nous voulons ouvrir les “bonnes”frontières. Nous ne voulons ouvrir que les frontières qui nous permettent d’inclure <strong><strong>de</strong>s</strong> étatsen attente <strong>de</strong> l’ensemble pending à l’intérieur <strong>de</strong> l’ensemble area <strong><strong>de</strong>s</strong> blocs actifs. Les frontièrespermettant <strong>de</strong> faire progresser l’algorithme ne peuvent se trouver qu’à la surface <strong><strong>de</strong>s</strong> blocs actifs,c’est à dire parmi les arcs <strong>de</strong> l’ensemble F dont l’origine appartient à l’ensemble surface<strong><strong>de</strong>s</strong> noeuds situés à la surface <strong>de</strong> inner. Par ailleurs, il peut être nécessaire d’ouvrir plus d’unefrontière avant que area ne soit suffisamment élargi pour inclure <strong><strong>de</strong>s</strong> états en attente. Le castypique est celui <strong>de</strong> <strong>de</strong>ux branches parallèles qui atten<strong>de</strong>nt la réception d’un même signal :||P 1 ; await S ; P 2Q 1 ; await S ; Q 2Si nous supposons que S est toujours reçu dans chacune <strong><strong>de</strong>s</strong> branches <strong>de</strong> ce programme, alors les<strong>de</strong>ux frontières générées par les <strong>de</strong>ux instructions await S doivent être ouverte en même temps.De ce fait, tant qu’aucun état en attente ne se situe à l’intérieur <strong>de</strong> l’ensemble area, une nouvellefrontière est analysée afin <strong>de</strong> déci<strong>de</strong>r si elle doit être ouverte ou pas. Dans cet algorithmne, lafonction Sort ≺ (E) permet <strong>de</strong> trier topologiquement un ensemble d’arcs E suivant la relation“≺” :1 surface ← Surface (N,E∪F) (inner)2 frontier ← Sort ≺ (Trans (N,F) (surface))3 i ← 14 tantque ( (pending ∩ area) = ∅ ) faire5 f ← frontier[i]6 −− Vérifier si f doit être ouverte (variable open?) voir algorithme 5.47 si ( open? ) alors8 −− Ouvrir f voir algorithme 5.69 fin si10 i ← i + 111 fin tantqueAlgorithme 5.3 – <strong>Calcul</strong> <strong>de</strong> area ′L’ensemble <strong>de</strong> noeuds surface représente la surface <strong><strong>de</strong>s</strong> blocs situés à l’intérieur <strong>de</strong> la frontière(ensemble inner à la ligne 1). Les arcs-frontière dont l’origine appartient à surface sont les seulsque nous pouvons ouvrir. Ces arcs-frontière sont triés d’après la relation d’ordre “≺” décriteà la section 4.3 et placés dans l’ensemble frontier (ligne 2). Chaque arc-frontière est ensuiteanalysé un à un dans l’ordre jusqu’à ce que l’ensemble area soit suffisamment élargi (lignes 4 à11). Cet ordonnancement nous permet d’analyser et d’ouvrir chaque frontière dans l’ordre quenous jugeons a priori le meilleur.5.1.2.1 Franchissement <strong><strong>de</strong>s</strong> frontièresPour déterminer si un arc-frontière doit être ouvert, nous nous focalisons sur les nouveauxregistres actifs <strong>de</strong> l’ensemble pending. Les états situés dans l’ensemble pending sont <strong><strong>de</strong>s</strong> états

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!