Présentation
Transcription
Présentation
Plan introduction théorème preuve formelle conclusion Vérification formelle de conditions d’ordonnançabilité de tâches temps réel périodiques strictes Daniel de Rauglaudre Équipe-projet Aoste - Inria 6 février 2012 Daniel de Rauglaudre JFLA 4 - 7 février 2012 1/20 Plan introduction théorème preuve formelle conclusion Plan 1 introduction 2 théorème 3 preuve formelle 4 conclusion Daniel de Rauglaudre JFLA 4 - 7 février 2012 2/20 Plan introduction théorème preuve formelle conclusion Plan 1 introduction 2 théorème 3 preuve formelle 4 conclusion Daniel de Rauglaudre JFLA 4 - 7 février 2012 3/20 Plan introduction théorème preuve formelle conclusion Introduction Motivation : Systèmes embarqués : sécurité. Tester preuves formelles. Projet P (Oséo). Logiciels d’ordonnancement : SynDEx de l’équipe Aoste (multiprocesseur). Dameid. Daniel de Rauglaudre JFLA 4 - 7 février 2012 4/20 Plan introduction théorème preuve formelle conclusion Exemple de trois tâches tâche τ1 : {phase = 0 ; durée = 1 ; période = 6} tâche τ2 : {phase = 3 ; durée = 1 ; période = 10} tâche τ3 : {phase = 1 ; durée = 2 ; période = 15} Daniel de Rauglaudre JFLA 4 - 7 février 2012 5/20 Plan introduction théorème preuve formelle conclusion Plan 1 introduction 2 théorème 3 preuve formelle 4 conclusion Daniel de Rauglaudre JFLA 4 - 7 février 2012 6/20 Plan introduction théorème preuve formelle conclusion Théorème (Jan Korst - 1992) Une liste de tâches {τ1 .. τn } est ordonnançable par l’algorithme de périodicité stricte non préemptive, si et seulement si : ∀ τi = (φi , di , Pi ) ∈ {τ1 .. τn } ∀ τj = (φj , dj , Pj ) ∈ {τ1 .. τn } avec i 6= j et φi ≤ φj on ait : di ≤ (φj - φi ) mod Gi,j ≤ Gi,j - dj où Gi,j = pgcd (Pi , Pj ) Daniel de Rauglaudre JFLA 4 - 7 février 2012 7/20 Plan introduction théorème preuve formelle conclusion Représentation de di + dj ≤ Gi,j le pgcd des périodes vaut 4 : Daniel de Rauglaudre JFLA 4 - 7 février 2012 8/20 Plan introduction théorème preuve formelle conclusion modélisation théorème corollaires Plan 1 introduction 2 théorème 3 preuve formelle modélisation théorème corollaires 4 conclusion Daniel de Rauglaudre JFLA 4 - 7 février 2012 9/20 Plan introduction théorème preuve formelle conclusion modélisation théorème corollaires Structures de données + Exemple Tâche : Record Task := { id : nat ; phase : nat ; duration : nat ; period : nat }. Unité de temps : Inductive time unit := | E : time unit | A : nat → time unit. (* processeur libre *) (* processeur occupé *) Exemple : A 1, A 3, A 3, A 2, E, E, A 1, E, E, E, E, E, A 1, ... Daniel de Rauglaudre JFLA 4 - 7 février 2012 10/20 Plan introduction théorème preuve formelle conclusion modélisation théorème corollaires Fonctions nth time unit : nat → Task → time unit renvoit la t ieme unité de temps pour la tâche τ merge unit list : nat → list Task → option time unit renvoit la t ieme unité de temps pour la liste de tâches τ l schedulable : list Task → Prop := ∀t, merge unit list t τ l 6= None Daniel de Rauglaudre JFLA 4 - 7 février 2012 11/20 Plan introduction théorème preuve formelle conclusion modélisation théorème corollaires Condition nécessaire Si, pour tout couple de tâches (τi , τj ) de τ l, di ≤ (φj - φi ) mod Gi,j ≤ Gi,j - dj alors ∀ t, merge unit list t τ l 6= None. Preuve : Par contradiction. On suppose donc que : ∃ τi τj t / nth time unit t τi = A i nth time unit t τj = A j Puis, considérations sur les opérations élémentaires, les inégalités et les modulos. Voir article. Daniel de Rauglaudre JFLA 4 - 7 février 2012 12/20 Plan introduction théorème preuve formelle conclusion modélisation théorème corollaires Réciproque On doit montrer que si ∀ t, merge unit list t τ l 6= None, alors, pour tout couple de tâches (τi , τj ) de τ l, di ≤ (φj - φi ) mod Gi,j ≤ Gi,j - dj Preuve : par la contraposée. mais... mais... est-ce que ça va résoudre le problème ? Daniel de Rauglaudre JFLA 4 - 7 février 2012 13/20 Plan introduction théorème preuve formelle conclusion modélisation théorème corollaires Contraposée... problème ! En logique intuitioniste : (A =⇒ B) =⇒ (B̄ =⇒ Ā) Mais la réciproque n’est pas vraie, en général. Sauf si B est décidable ! B= Pour tout couple de tâches (τi , τj ) de τ l, di ≤ (φj - φi ) mod Gi,j ≤ Gi,j - dj Daniel de Rauglaudre JFLA 4 - 7 février 2012 14/20 Plan introduction théorème preuve formelle conclusion modélisation théorème corollaires Contraposée de la réciproque S’il existe un couple de tâches (τi , τj ) de τ l tel que : di > (φj - φi ) mod Gi,j ∨ (φj - φi ) mod Gi,j > Gi,j - dj alors ∃ t, merge unit list t τ l = None. Preuve : théorème de Bachet-Bézout. Daniel de Rauglaudre JFLA 4 - 7 février 2012 15/20 Plan introduction théorème preuve formelle conclusion modélisation théorème corollaires Contraposée de la réciproque S’il existe un couple de tâches (τi , τj ) de τ l tel que : di > (φj - φi ) mod Gi,j ∨ (φj - φi ) mod Gi,j > Gi,j - dj alors ∃ t, merge unit list t τ l = None. Preuve : théorème de Bachet-Bézout. ∀ a b ∈ N, ∃ u v ∈ Z / a.u + b.v = pgcd(a, b) Daniel de Rauglaudre JFLA 4 - 7 février 2012 15/20 Plan introduction théorème preuve formelle conclusion modélisation théorème corollaires Contraposée de la réciproque S’il existe un couple de tâches (τi , τj ) de τ l tel que : di > (φj - φi ) mod Gi,j ∨ (φj - φi ) mod Gi,j > Gi,j - dj alors ∃ t, merge unit list t τ l = None. Preuve : théorème de Bachet-Bézout. ∀ a b ∈ N, ∃ u v ∈ Z / a.u + b.v = pgcd(a, b) Bachet-Bézout sur les entiers naturels : ∀ a b ∈ N, ∃ u v ∈ N / a.u = b.v + pgcd(a, b) Daniel de Rauglaudre JFLA 4 - 7 février 2012 15/20 Plan introduction théorème preuve formelle conclusion modélisation théorème corollaires Corollaire 1 : somme des durées Une liste de tâches {τ1 .. τn } est ordonnançable si : P τk dk ≤ pgcd Pk On choisit les phases : φ1 = 0 et φi+1 = φi + di Réciproque fausse en toute généralité. Exemple : {d1 =1 ; P1 =4 } {d2 =1 ; P2 =6 } {d3 =1 ; P3 =4 } Daniel de Rauglaudre JFLA 4 - 7 février 2012 16/20 Plan introduction théorème preuve formelle conclusion modélisation théorème corollaires Corollaire 2 : deux tâches Deux tâches τ1 et τ2 sont ordonnançables si et seulement si : d1 + d2 ≤ pgcd(P1 , P2 ) Phases : φ1 = 0 et φ2 = d1 Réciproque vraie dans ce cas. Daniel de Rauglaudre JFLA 4 - 7 février 2012 17/20 Plan introduction théorème preuve formelle conclusion Plan 1 introduction 2 théorème 3 preuve formelle 4 conclusion Daniel de Rauglaudre JFLA 4 - 7 février 2012 18/20 Plan introduction théorème preuve formelle conclusion Concrètement... début 2011 2 mois de développement (débutant Coq) 2000 lignes de Coq sources sur le Web : http://pauillac.inria.fr/~ddr/publi/coq_korst/ travail clos Daniel de Rauglaudre JFLA 4 - 7 février 2012 19/20 Plan introduction théorème preuve formelle conclusion Conclusion et Travaux futurs Preuves formelles possibles dans ce domaine. Opinion perso : Coq = révolution dans les maths ! Autre théorème en cours : tâches préemptives avec priorité. Preuves formelles de programmes embarqués ? Projet P (Oséo). Preuve formelle du noyau de SynDEx ? Tactiques : ssreflect de Microsoft Research-Inria ? Daniel de Rauglaudre JFLA 4 - 7 février 2012 20/20