6-2_Planches_LAAS_J-Arlat

Transcription

6-2_Planches_LAAS_J-Arlat
Atelier “Composants commerciaux pour l’informatique embarquée”
CNES, Toulouse — 12 juin 2002
Développer des systèmes sûrs
à partir de composants COTS
non sûrs: mythe ou réalité ?
Jean Arlat et Jean-Charles Fabre
{arlat, fabre}@laas.fr
Toulouse - France
Développement axé sur l’utilisation
de composants (logiciels)
!
!
!
Intégration de composants préalablement développés
(commerciaux ou non) OTS = soit COTS soit OSS
Motivations et avantages
"
productivité et
délai de réalisation
"
prise en compte des avancées technologiques
"
compatibilité avec les standards industriels
"
« qualité » (composants largement diffusés)
Applications à fortes exigences en sûreté de fonctionnement
?
Sûreté de fonctionnement
des systèmes d’exploitation « COTS »
15
15 «« COTS
COTS »» OSs
OSs
[Koopman
[Koopman&& DeVale
DeVale99
99(FTCS-29)]
(FTCS-29)]
AIX
FreeBSD
HP-UX B.9.05
HP-UX B.10.20
Irix 5.3
Irix 6.2
Linux
Abort
Abort %
Silent
Silent
%
Restart
Restart %
Catastrophic
Catastrophic
LynxOS
NetBSD
OSF-1 3.2
OSF-1 4.0
9
QNX 4.22
QNX 4.24
SunOS 4.13
SunOS 5.5
0
0%
10
10%
20
20%
30
30%
40
40%
50
50%
Normalized failure rate (%)
Paramètres invalides dans les appels système
au niveau API POSIX
Environnement prototype de caractérisation
et de wrapping (empaquetage)
Microkernel
Détection
Propagation
Défaillances
Traces d’exécution
Assessment
by Fault injection
AnaLysis
Design Aid
MAFALDA
Arlat et al. 2002
(IEEE ToC - Fév. 2002)
Modèles fonctionnels
Assertions exécutables
Wrappers
Mise en œuvre
réflexive
Architecture de MAFALDA
Rack de machines cibles
- Intel Pentium
Machine pilote - Sun SPARCstation 20
(Solaris 2.5.1)
Architecture de MAFALDA
EXPERIMENT
CONTROLLER
PARAMETER
INJECTOR
W1
W2
remote
access
Campaign
File
Descriptor
Application Level
Log File
MICROKERNEL
INJECTOR
Microkernel Level
Rack de machines cibles
- Intel Pentium
Experiment
Results
Workload
File Descriptors
#1
#2
#3
#4
Machine pilote - Sun SPARCstation 20
(Solaris 2.5.1)
Architecture de MAFALDA
EXPERIMENT
CONTROLLER
PARAMETER
INJECTOR
W1
W2
remote
access
Campaign
File
Descriptor
Application Level
Log File
MICROKERNEL
INJECTOR
Microkernel Level
Rack de machines cibles
- Intel Pentium
Experiment
Results
Workload
File Descriptors
#1
#2
#3
#4
Machine pilote - Sun SPARCstation 20
(Solaris 2.5.1)
Comportement en présence de fautes
Corruption
application
!
Défaillance application
(valeur & ordre exécution)
!
Blocage application
Propagation
Application / middleware
API
Micronoyau
Erreur
!
Détection interne
" Statut d’erreur
Corruption
Interne
" Exceptions
Propagation
Erreur
µkCi
!
Blocage noyau
µkCj
Cas d’études
!
Micronoyaux cibles
"
"
!
Composants fonctionnels
"
"
"
"
!
SYN : synchronisation (par semaphores)
MEM : gestion mémoire
SCH : ordonnancement (type FIFO preemptif)
COM : gestion de la communication (locale and distante)
Types d’injection de fautes
"
"
!
Chorus ClassiX (code source disponible)
LynxOS r 3.0.1 (code source non-disponible)
Injection dans les segments de code et de données des composants
Injection dans les paramètres des appels système
Examples de résultats expérimentaux
"
"
"
"
Distribution des erreurs
Propagation des erreurs
Latence des exceptions
Comparaison entre les µnoyaux cibles
Regroupement des données
DEFAILLANCE
9%
Expériences
non significatives
28.5%
NO OBS.
28,5%
APPFAIL
9,0% APPHANG
6,0%
SYSHANG
1,4%
3010
Exp.
ERROR
STATUS
3,0%
EXCEPTION
38,1%
DETECTION
41.1%
KDB
13,9%
BLOCAGE
21.3%
Distribution des erreurs
(segment de code)
DEFAILLANCE
9%
Non sign.
28.5%
3010
exp.
BLOCAGE
21.3%
DETECTION
41.1%
DEFAILLANCE
2.4% BLOCAGE
7%
Non sign.
33%
2970
exp.
2924
exp.
DETECTION
57.7%
MEMOIRE
DEFAILLANCE
3.6% BLOCAGE
10.3%
Non sign.
31.3%
SYNCHRONISATION
DETECTION
55%
COMMUNICATION
Propagation des erreurs
COM
84,2% AF Défaillance Appl.
0% EXC Exception
15,8% ES Statut d’erreur
MEM
100%AF
0% EXC
0% ES
63.3 %
(30/3010)
SYN
36.7 %
COM
SYN
32,5%AF
61,3%EXC
6,2% ES
44,2 %
(segment de code)
8,9% AF
77,2%EXC
13,9%ES
(26/2970)
57.7 %
SYN
55,8 %
COM
100%AF
0% EXC
0% ES
43.3 %
MEM
MEM
(181/2924)
100%AF
0% EXC
0% ES
Latence des exceptions
(segment de code)
100%
80%
300
60%
200
40%
100
Dist. Cumulée
# EXceptions
400
20%
0%
0
0
1
2
3
4
5
6
microsecondes
7
8
9
10
>10
Chorus vs. LynxOS
Kernel
code
45
40
35
30
%
25
20
15
10
5
0
Appli.
Failure
Appli.
Hang
Kernel
Hang
Exception
Error
Status
No Obs
Définition de Wrappers
!
Sémantique des composants
!
P : (I, Ci) ⇒ (Co, O, S)
Parmètres
de sortie
Paramètres
d’entrée
I
Modélisation
du comportement
O
Context
In Ci
Context
Out Co
S
Statut
d’erreur
!
Types de prédicats
"
"
Complexité des composants cibles
Niveau d’abstraction requis pour obtenir un modèle réaliste
Exemple: Wrapper de Synchronisation
Sémaphore
Semaphore s:
Soit
et #V(s) les
nombres
d’appelsof
respectifs
à P(s)
Let #P(s) and
be the
total number
calls to the
et V(s):
and
- integer s.val
- process queue s.queue
Opérations
:
Main operations:
s.val = init_value - #P(s) + #V(s)
Soit
le nb.
de threads
dans
Let #Suspended(s) the
number
of threads
in s.queue:
- Init: I(s)
- Get: P(s)
- Release:V(s)
#Suspended(s) = max(0, -s.val)
Val.
Initiale
Initial
value:: init_value
P(s) V(s)
Wrapper
µK comp. SYN
Le
prédicat peut
être défini
:
Accordingly,
theainsi
predicate
can bepar
defined
as:
[s.val = init_value - #P(s) + #V(s)] ∧
[#Suspended(s) = max(0, -s.val) ]
Impact du Wrapping Composant standard
Composant
synchronisation
“SYN”
Wrapper SYN
Wrappers SYN & SCH
0
2
4
6
APPFAIL
(%)
Application
Failure
8
10
(%)
25%
Composant
ordonnancement
“SCH”
20%
23%
Comp. standard
Wrapper SCH
15%
15%
10%
5%
0%
7%
5%
2%
Appl.
Failure
4%
Application
Hang
3%
1%
Kernel
Hang
Total
Vers une technologie d’empaquetage
pour la SdF des systèmes temps réels
à base de micronoyaux
The wrappers are executed
concurrently on a virtual machine
Specification
(temporal logic)
Formula+Actions FA1
COMPILATION
Formula+Actions FA2
...
Formula+Actions FAn
Wrappers
WFA1 WFA2 ... WFAn
Runtime checker
Observation
The model is a set of
formulas in temporal logic
including actions
Automatic generation of the
wrappers code
(data, ticks, events)
TSC
Control
(actions)
Target
Software
Component
The TSC must deliver data items,
clock ticks and events to the
wrappers
Error signal
Fault Tolerance
• Detection
• Recovery
Caracterization
• Synchronization
• Injection
• Observation
MAFALDA-RT
Limitation de
l’intrusion temporelle
Détection
Propagation
Défaillances
(en valeur & en temps)
Traces d’exécution
Caractéristiques
temporelles du noyau
(temps de basculement)
Analyse du
séquencement
des événements
observés
Microkernel
Assessment
by Fault injection
AnaLysis
Design Aid
for Real-Time systems
Spécification
formelle en
logique temporelle
Compilation
Vérificateur en ligne
Mécanismes
“d’empaquetage”
• détection
• recouvrement
Mise en œuvre
réflexive
Analyse explicite
du surcoût temporel
!
Composants COTS logiciels cibles :
OSs, Middleware (CORBA),…
!
Solutions architecturales:
—> Couches de wrappers réflexifs
!
Benchmarking
Black
Box
..
.
Wrapper
COTS MW
Wrapper
COTS OS
..
.
M IF
Niveau d’assimilation préconisé:
M IF I
F
!
MetaI
F
Conclusions et perspectives
—> Projet IST 2000-25425 DBench
(Dependability Benchmarking)
[http://www.laas.fr/dbench]
—> IFIP WG 10.4 SIG on Dependability Benchmarking
[http://www.dependability.org]
!
Impact sur le processus de qualification voire de certification