Qu-est-ce que la fiabilité d'un système embarqué ? Comment l'améliorer ? Introduction Définition de la fiabilité d’un système : La fiabilité est la capacité d’un système à fournir un service dont on peut faire confiance. La fiabilité c’est aussi la capacité d’un système à éviter les pannes les plus fréquentes ou qui ne sont pas acceptable. Sommaire masquer 1 Qu-est-ce que la fiabilité d'un système embarqué ? Comment l'améliorer ? 1.1 Introduction 1.2 Explication Fiabilité 1.3 Probabilité sur la fiabilité 1.3.1 Taux de défaillance 1.3.2 Temps moyen jusqu'à la défaillance 1.3.3 Temps moyen de réparation 1.3.4 Disponibilité du système embarqué 1.3.5 Temps moyen entre les défaillances 1.4 Probabilité sur la fiabilité 1.4.1 Taux de défaillances observé 1.5 Les différents types de système 1.5.1 Système en série 1.5.2 Système en Parallèle 1.5.3 Système en combiné série-Parallèle 1.5.4 Système non série-Parallèle 1.6 Les systèmes cohérents 1.6.1 La formule d'un système cohérent 1.6.2 Vecteur de trajectoire 1.6.3 Vecteur de coupe 1.7 Chaîne de Markov 1.7.1 Exercice 1.7.2 Corrigé Explication Fiabilité Probabilité sur la fiabilité Taux de défaillance Le taux de défaillance λ est le nombre attendu de défaillances par rapport au temps. Comme on peut voir sur la formule à droite on fait la somme de toute les défaillances détectées pour avoir le taux de défaillance global. Temps moyen jusqu'à la défaillance Le temps moyen avant défaillance d’un système est le temps avant l’apparition de la première défaillance du système. N corresponds au nombre de composant, et t c’est le temps. Temps moyen de réparation Le temps moyen de réparation d’un système est la moyenne temps nécessaire pour réparer le système. Le taux de réparation µ est le nombre prévu de réparations par rapport au temps. Disponibilité du système embarqué La disponibilité A(t) est la probabilité que le système fonctionne à l’instant t. Cela corresponds à la moyenne de A(t) pour chaque mission du système embarqué. Temps moyen entre les défaillances Le temps moyen entre les défaillances du système, c’est l’addition du temps moyen jusqu’à la défaillance plus le temps moyen de réparation. Probabilité sur la fiabilité Voici un graphique montrant quand se trouve la majorité des bugs durant la vie d’un logiciel.Comme on peut voir les premiers bugs sont lors de la création du logiciel à cause de bug de conception.Les bugs durant la vie du logicile arrivent à chaque mise à jour du logiciel qui apporte sont lots de bugs.Une fois les mises à jours finit le nombre de bugs stagnent. Taux de défaillances observé Le taux de défaillance peut être décrit par le graphique juste à droite. La courbe la plus importante (et la plus connue) est celle qui est en bleu (Observed Failure Rate). La courbe bleu (courbe appelé baignoire) peut décrire la variance du taux d’échec indiqué.La première partie montre un taux de défaillance décroissant, appelé défaillance précoce ; la seconde partie est un taux de défaillance constant, dit de défaillance aléatoire ; et la troisième partie est un taux de défaillance croissant, qui est la défaillance par usure. En général, le taux de défaillance d’un produit est élevé au début de l’exploitation en raison de la défaillance précoce des composants. Son taux de défaillance diminuera très rapidement lorsqu’un composant défectueux du produit est identifié et mis au rebut.Une fois les défaillances précoces éliminées, le produit entre dans un état de fonctionnement stable avec un taux de défaillance faible et constant. Pendant cette période, les pannes sont causées par des facteurs aléatoires.Dans la dernière période de vie du produit, le taux de défaillance augmente avec l’âge de maturation du produit causé par l’usure progressive. La majeure partie du cycle de vie du produit se comporte selon la courbe de la baignoire. Les différents types de système Système en série Si un système est en série, si un des composants donnent le mauvais résultat alors il y aura une erreur. Avantage : Temps le plus rapideInconvénient : Une erreur ne peut être corrigé Système en Parallèle Un système en parallèle permet d’avoir plusieurs calculateurs qui font le même calcul en même temps et donc d’avoir un des calculateurs qui donnent le bon résultat. Ceci permet d’avoir une garantit que si l’un des composants en parallèle ne fonctionne pas le système foncitnne quand même.Par exemple si C1 et C2 sont les mêmes composants et que C3 et C4 sont aussi les mêmes composants :Si C1 est en défaut alors C2 peut prendre le relais et inversementSi C3 est en défaut alors C4 peut prendre le relais et inversement Avantage : Plusieurs erreurs peut-être corrigéInconvénient : Temps moins rapide que série mais d’augmentation de coût (car pas plus de composant).Conclusion : Système en parallèle peut être un bon compromis car on n’augmente pas le coût tout en ayant une correction des erreurs. Système en combiné série-Parallèle Le système combiné série-parallèle permet d’avoir plus de garantie d’avoir un résultat correcte: C2 tombe en panne : Le résutat sera correcte grâce à C1 et C3.C1 tombe en panne : Le résultat sera correcte grâce à C2 et C3. C3 tombe en panne : Le résultat sera correcte grâce à C1 et C2. Avantage : Plusieurs erreurs peuvent être corrigés.Inconvénient : Temps peu rapide du au différent chemins et augmentation des coûts du à la redondance (car un peu de redondance).Conclusion : Système en série-parallèle permet de corrigé des erreurs venant de plusieurs composants en ayant le même résultat. Néanmoins le système coute plus cher à cause de la redondance des composants. Système non série-Parallèle Le système non série-parallèle permet de corriger le maximum d’erreur venant d’un ou plusieurs composants. Ceci permet de ne pas augmenter le coût car il n’y a pas de redondance de composant tout en corrigeant les erreurs.Néanmoins le temps passé dans le système est beaucoup augmenté et c’est la solution la moins rapide. Avantage : Plusieurs erreurs peuvent être corrigés.Inconvénient : Temps peu rapide du au différent chemins et augmentation des coûts du à la redondance (car un peu de redondance). Conclusion : Système en non série-parallèle permet de corrigé des erreurs venant de plusieurs composants en ayant le même résultat. Néanmoins c’est le système le moins rapide. En conclusion, il y a pas de solution parfaite : améliorer la fiabilité signifie souvent augmenter le nombre de composant ou le temps passée dans le système, il y a donc un compromis à avoir entre le coût du système, le temps passé dedans et sa fiabilité afin d’avoir un système qui réponds à votre cahier des charges. Les systèmes cohérents Un système cohérent est un système qui n’a pas de composant qui “court-circuit” le système, c’est à dire un chemin qui serait plus facile par lesquel passer Voici un exemple de système non cohérent : Le système à droite n’est pas cohérent car le système peut passer par C1 sans passer par C2 ce qui met C2 en défaut. On va maintenant voir quelques fonctions qui permettent de définir un système cohérent. La formule d'un système cohérent Vecteur de trajectoire Un vecteur chemin pour un système cohérent est un vecteur x tel que ξ(x) = 1. Vecteur de coupe Un vecteur de coupe pour un système cohérent est un vecteur x tel que ξ(x) = 0. Chaîne de Markov Un processus de Markov est un processus stochastique possédant la propriété de Markov : l’information utile pour la prédiction du futur est entièrement contenue dans l’état présent du processus et n’est pas dépendante des états antérieurs (le système n’a pas de « mémoire »).On va appliquer les chaînes de Markov pour les systèmes embarqués avec l’exercice ci-dessous : Exercice L’exercice se porte sur la vie du chien Bob :Quand Bob dort, il y a 9 chances sur 10 qu’il est allongé dans son lit la minute suivante. Quand il se réveille, il y a 1 chance sur 2 qu’il joue et 1 chance sur 2 qu’il mange.Ses repas durent une minute puis il commence à jouer (3 chances sur 10) ou il s’endort (7 chances sur 10).Bob se fatigue vite. Souvent, il se rendort (8 chances sur 10) mais, comme il aime son nouveau jouet, parfoisil continue à jouer.Sachant que Bob est entrain de dormir, que fera-t’il dans 3 minutes ? Corrigé Pour la correction de cet exercice, nous utiliserons les chaînes de Markov.Etape 1 : Le schéma de Markov : Pour expliquer ce schéma, on va reprendre l’énoncé petit à petit afin d’expliquer ce schéma :Les trois actions que peut faire Bob sont : Dormir, manger et Jouer. Ce sont donc les trois cercles .Quand Bob dort, il y a 9 chances sur 10 qu’il est allongé dans son lit la minute suivante : on a donc une flèche qui boucle sur D avec une probabilité de 9/10 donc 0.9.Quand il se réveille, il y a 1 chance sur 2 qu’il joue et 1 chance sur 2 qu’il mange : On ajoute donc deux flèches partant de dormir vers Manger et vers jouer qui valent 0.05 car comme il y a 9/10 chance qu’il dorme, il reste donc 1/10 pour qu’il fasse autre chose. Il y a 50% de chance qu’il mange ou joue donc ca fait (1/10) /2 donc 0.05 qu’il joue ou mange.Ses repas durent une minute puis il commence à jouer (3 chances sur 10) ou il s’endort (7 chances sur 10) : On fait donc une flèche de manger vers jouer qui vaut (3/10 =0.3). On fait aussi une flèche de manger vers dormir avec comme valeur (7/10 = 0.7)Bob se fatigue vite. Souvent, il se rendort (8 chances sur 10) mais, comme il aime son nouveau jouet, parfois il continue à jouer : On fait donc une flèche partant de jouer jusqu’à dormir valant (8/10 =0.8). Comme Bob restent jouer s’il ne se rendort pas et bien on ajoute une boucle sur Jouer valant 0.2. Etape 2 : La matrice de simulation La matrice de simulation de Markov permet de faire de calcul de probabilité et qui va nous servir à déduire qu’elle est la probabilité que si Bob est entrain de dormir, qu’est-ce qu’il fera dans 3 minute ? Pour remplir notre matrice, on va utiliser les probabilités de dormir, manger et jouer de Bob se situant sur le shéma de Markov. On va voir comment remplir la matrice à droite. (D = dormir, M= manger, J =jouer). Pour remplir cette matrice, on va utiliser le schéma de Markov :1ère ligne :D/D : corresponds à la boucle sur D donc la valeur 0.9D/M : la flèche allant de D vers M donc 0.05D/J : la flèche allant de D vers J donc 0.052ème lignes :M/D : la flèche allant de M vers D donc 0.7M/M : la boucle allant de M vers M. Comme il y a pas de boucle on met la valeur 0.M/J : La flèche allant de M vers J donc 0.3.3ème lignes :J/D : La flèche allant de J vers D donc 0.8J/M : La flèche allant de J vers M donc comme il n’y a pas de flèche donc 0.J/J : La boucle allant de J vers J. On a donc la valeur 0.2. Voici la matrice de simulation : Etape 3 : Analyse de la matrice On va maintenant utiliser la matrice pour obtenir la probabilité : Sachant que Bob est entrain de dormir, que fera-t’il dans 3 minutes ? La probabilité adapté à la matrice est : Pd : Corresponds à la probabilité de dormirPm : Corresponds à la probabilité de mangerPj : Corresponds à la probabilité de jouer. A l’état initial, Bob est entrain de dormir on a donc : A chaque minute, Bob change d’état, on va donc calculer les trois états suivant après l’état initial : A l’état initial, Bob est entrain de dormir on a donc : Pour avoir l’état suivant il suffit de multiplier l’état P(0) par la matrice de simulation : Pour avoir l’état suivant il suffit de multiplier l’état P(0) par la matrice de simulation :