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