23
EDF Electricité de France THOMSON-CSF L I S technicatome Caractérisation des COTS : comment améliorer la connaissance des modes de défaillance des COTS ? Jean-Charles Fabre LAAS et L L I I S S

de France EDF IS - laas.fr · Chorus, LynxOS, VxWorks —Les systèmes opératoires généraux : ... • comportement d’un module • propagation inter-module Evaluation Types de

  • Upload
    dodieu

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

EDFElectricitéde France

THOMSON-CSF

L I Stechnicatome

Caractérisation des COTS :

comment améliorer la connaissancedes modes de défaillance des COTS ?

Jean-Charles FabreLAAS et LLLLIIIISSSS

Le problème et son contexteLe problème et son contexteSélection des COTS ?

☞ adéquation aux besoins fonctionnels ••• et non-fonctionnels

méthodes et outils de caractérisation des COTS

qualité des composants (étalonnage-benchmarking)

Evaluation de leur comportement en présence de fautes

Le problème et son contexteLe problème et son contexteSélection des COTS ?

Démonstration de la robustessevis-à-vis des erreurs (analysedes modes de défaillance)

méthodes et outils de caractérisation des COTS

☞ adéquation aux besoins fonctionnels ••• et non-fonctionnels

Evaluation de leur comportement en présence de fautes

Le problème et son contexteLe problème et son contexte

Les techniques de base Quel COTS:

les cibles?

Le niveau d’appropriation

Les outils

Les types de résultats et ...

L’analyse.

méthodes et outils de caractérisation des COTS

Les ciblesLes cibles• Les exécutifs : pourquoi ?

— Logiciel complexe dont le développement est un métier en soi— Services de base permettant l’exécution des applications

(gestion de tâches, de mémoire, de communication,de synchronisation, d’E/S, de fichiers…)

— Les applications dépendent fortement de leur boncomportement y compris en présence de fautes

• Quels exécutifs ?— Les micronoyaux temps-réel : Chorus, LynxOS, VxWorks

— Les systèmes opératoires généraux : Unix, Windows…

— Les « intergiciels » (Middleware) : Corba, Dcom...

Le niveau d’appropriationLe niveau d’appropriation

Boîte noire

COTSOpen source, Freeware

Logiciel Maison & PDS

(Previously Developed Software

COTSpropriétaire

Interface fonctionnelleet documentation (installation, utilisation)

+ mise à disposition du code source du COTS

+ Documents de conception et de test

Boîte grise Boîte blanche

Les techniques de baseLes techniques de base• Analyse par injection de fautes

— Identification des modes de défaillance— Evaluation de la couverture de détection d’erreur— Identification des canaux de propagation d’erreur— Caractérisation de la robustesse de l’interface

• Amélioration du confinement par empaquetage

• Evaluation du micronoyau empaqueté

Les techniques de baseLes techniques de base• Les techniques d’injection

— Physique (techniques de forçage, ion-lourds, EMI)— Par Logiciel (SWIFI: SoftWare Implemented Fault Injection)Emulation des erreurs induites par des fautes soit d’origine physique

soit liées à la conception et la programmation des logiciels

• Le modèle de faute— Bit-flip aléatoire dans une zone mémoire— Substitution déterministe par choix d’instructions ou de valeurs

erronées / sémantique des appels à l’exécutif COTS

Les techniques de baseLes techniques de base• Analyse des modes de défaillance

— La cible de l’injection est l’exécutif : Dans quelle mesure lescontrôles internes détectent les erreurs internes dues à desfautes (physiques ou du logiciel) ?

— La cible est le logiciel d’application: Dans quelle mesure lescontrôles effectués au niveau de l’interface (API) détectent leserreurs et empêchent leur propagation ?

• Les modes de défaillance— L’erreur est détectée : error status, exceptions, protection &

traps, etc.— L’erreur n’est pas détectée : Crash exécutif, crash application,

comportement/sorties erronées de l ’application

L’outil BallistaL’outil Ballista• Objectif

— Test automatique de systèmes opératoires à interface POSIX— Ciblage sur les fonctions de l’API (paramètres) ➪ robustesse

Carnegie MellonUniversity, USA

Espace d’entrée Espace de sortie

Entréevalide

Entréeinvalide

Comportementattendu

OK

indéfini

erreur

Opération robuste

Défaillancereproductible

Défaillancenon reproductible

UNIX

posi

x

Ballista effectue l ’injection de faute en utilisant des combinaisons de paramètres valides et invalides

ExpérimentationsExpérimentationsApplication à 175-233 fonctions POSIX sur différents

systèmes opératoires du marché• Examples de paramètres invalides

— Entiers ou descripteurs de fichier : not in range,0,1,-1,+/-maxint— Pointer : null, -1, hors zone mémoire— Chaînes de caractères: dimension, format incorrect

• Resultats— C-R-A-S-H + taux de défaillance normalisé + comparaison— Identification de certaines situations d’erreur de fonctions

invoquées avec des paramètres incorrects— 37% et 58% des tests non défaillants

Comparaison des résultatsComparaison des résultats

0% 10% 20% 30% 40% 50%

SunOS 5.5

SunOS 4.13

QNX 4.24

QNX 4.22

OSF-1 4.0

OSF-1 3.2

NetBSD

Lynx

Linux

Irix 6.2

Irix 5.3

HPUX 10.20

HPUX 9.05

FreeBSD

AIX

Abort % Silent % Restart %

Catastrophic

Taux de défaillance normalisé (%)

AIX

FreeBSD

HP-UX B.10.20

Linux

LynxOS

QNX 4.24

SunOS 5.5

NetBSD

Irix 6.2

Irix 5.3

HP-UX B.9.05

OSF-1 3.2

OSF-1 4.0

QNX 4.22

SunOS 4.13

Abort

SilentRestart

Catastrophic

0 10 20 30 40 50

9

15 Exécutifs “OTS”[Koopman & DeVale 99]

15 Exécutifs “OTS”[Koopman & DeVale 99]

Terminaison anormale signalée

Aucuneobservation

Blocage/relanced’une tâche

Blocage comple(i.e., reboot)

L’outil MAFALDAL’outil MAFALDA• Cible: µ-noyaux COTS Exécutif pour systèmes

embarqués critiquesNouvelletendance

• µ-noyaux de dernièregénérationarchitecture à composantsconfigurabilitéinterfaces et middleware

• Exécutif et technologie µ- noyau services de base d’exécutif exécutif = micronoyau + services

...

SYN SCHED

Microkernel API

Middleware API

Microkernel

Applications

Systemservices

COMMEM

Standard API (Posix, Corba, Java VM)Interface propriétaire (spécifique à un domaine d’application)

LAAS-CNRS, Toulouse, France

Analyse par injection de fautesAnalyse par injection de fautes

• robustesse de l’interface• mécanismes de détection d’erreur

• corruption des paramètres• corruption du micronoyau

• comportement d’un module • propagation inter-module

Evaluation Types de fautes

Cibles de l’injection Observation

Erreur

Faute

Interface micronoyau

SYN COM MEM

SYN COM MEM

Faute

propagation

Composantsfonctionnels

Niveauapplication

...

...

Processusde charge

Caractérisation[Fabre et al. 99]

Caractérisation[Fabre et al. 99]

Architecture de MAFALDAArchitecture de MAFALDA

Rack de machines cibles- Intel Pentium

Machine pilote - Sun SPARCstation 20 (Solaris 2.5.1)

Architecture de MAFALDAArchitecture de MAFALDA

Machine pilote - Sun SPARCstation 20 (Solaris 2.5.1)

Application Level

MICROKERNELINJECTOR

CONTROLLER

ExperimentResults

Log File

CampaignFile

Descriptor

Workload File

#1#2#3

#4

remoteaccessW1

Descriptors

Microkernel Level

W2

PARAMETERINJECTOR

EXPERIMENT

Rack de machines cibles- Intel Pentium

Architecture de MAFALDAArchitecture de MAFALDA

Machine pilote - Sun SPARCstation 20 (Solaris 2.5.1)

Application Level

MICROKERNELINJECTOR

CONTROLLER

ExperimentResults

Log File

CampaignFile

Descriptor

Workload File

#1#2#3

#4

remoteaccessW1

Descriptors

Microkernel Level

W2

PARAMETERINJECTOR

EXPERIMENT

Architecture [Rodriguez et al. 99]

Architecture [Rodriguez et al. 99]

Rack de machines cibles- Intel Pentium

Comportement en présence de fautesComportement en présence de fautes

µkCjµkCi

Micronoyau

Application / middleware

CorruptionInterne

! Détection interne" Status d’erreur" Exceptions

! Blocage exécutif

! Défaillance application" Résultats erronés" Blocage application

Erreur

Propagation

Erreur

Propagation

Sévérité

CorruptionApplication

API

Types de résultats expérimentauxTypes de résultats expérimentaux

Synchronization exception latencies

0

50

100

150

200

250

300

350

400

0

0,6

1,2

1,8 2,4 3

3,6

4,2

4,8

5,4 6

6,6

7,2

7,8

8,4 9

9,6

or m

ore…

nanoseconds

,00%10,00%20,00%

30,00%40,00%50,00%60,00%70,00%

80,00%90,00%100,00%

x 1E+6

87.0%

9.0%0.0%2.2%

0%

20%

40%

60%

80%

100%

Microkernel Fault Injection

Parameter Fault Injection

No Wrapper

SYN Wrapper

Propagation d’erreurModes de défaillance (SYN)

Efficacité des wrappersLatence de détection (EXC.)

63.3 %

36.7 %

0%

100% 0%

SYN

COM

MEM

15.8%

84.2%EX

AF

ES 0%

EX

AF

ES

SYSHANG1,4%

EXCEPTION38,1%

APPHANG6,0%

KDEBUG19,9%

APPFAIL9,0%

ERROR STATUS3,0%

NO OBS.28,5%

3010 Exp.

Détection (41,1%)

Blocage(21,3%)

Défaillance (9%)

Exp. non significatives

(28,5%)

ExpérimentationExpérimentation• Micronoyau Chorus ClassiX

— Charges: processus indépendants/composant micronoyau— Configuration: synchro., mémoire, ordonnancement, comm.

(Version standalone)

— Wrappers: synchronisation, ordonnancement— Code source: disponible

• Micronoyau LynxOS— Charges: ré-implémentation en fonction de l’interface Posix— Configuation: synchro., mémoire, ordonnancement, comm.

(Niveaux de service enrichis Posix)

— Wrappers: non— Code source: non disponible

EnseignementsEnseignements• Leçon 1

— Les résultats obtenus donnent des indications sur le comportementen présence de fautes, sur les choix de conception desmicronoyaux COTS et sur la nécessité de l’empaquetage.

• Leçon 2— Les profils de charge indépendants permettent de relever des

faiblesses, fautes de conception ou erreur de programmation. Lesdonnées brutes sont d’un grand intérêt pour le déverminage.

• Leçon 3— Les résultats dépendent fortement de la configuration de

l’instance, du découpage en composants, du profil d’utilisation, de laplate-forme matérielle

EnseignementsEnseignements• Leçon 4

— La comparaison entre micronoyaux a des limites dès lors que leurinterface diffère. Les expériences permettent de renseigner lechoix en fonction de résultats ciblant différentes fonctionnalités.

• Leçon 5— L’utilisation de wrappers permet d’améliorer de manière sensible le

comportement en présence de fautes, en particulier pour unmicronoyau stand alone, i.e. en configuration minimale.

• Leçon 6— La décision d’empaquetage et la sélection du micronoyau doit se

faire en fonction des résultats obtenus, du type d’application, desperformances et des hypothèses à garantir pour la mise en œuvrede couches supérieures de tolérance aux fautes.

ConclusionConclusion• Caractérisation des modes de défaillance par injection

de fautes— Une nécessité pour la sélection de COTS, en particulier des

exécutifs (applicable à d’autres logiciels COTS)— L ’analyse par composant, en combinant les approches déterministe

et aléatoire, permet d’identifier le COTS adéquat (instance, plate-forme, profil application, comportement)

• Techniques de Wrapping— Complémentaires— Efficaces

• Intérêt commun aux fournisseurs et aux intégrateurs !