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

Documents pareils