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.
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.
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.
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.
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é.
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.
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.
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 rapide
Inconvénient : Une erreur ne peut être corrigé
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 :
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.
Le système combiné série-parallèle permet d’avoir plus de garantie d’avoir un résultat correcte:
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.
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.
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.
Un vecteur de coupe pour un système cohérent est un vecteur x tel que ξ(x) = 0.
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 :
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, parfois
il continue à jouer.
Sachant que Bob est entrain de dormir, que fera-t’il dans 3 minutes ?
Pour la correction de cet exercice, nous utiliserons les chaînes de Markov.
Pour expliquer ce schéma, on va reprendre l’énoncé petit à petit afin d’expliquer ce schéma :
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.9
D/M : la flèche allant de D vers M donc 0.05
D/J : la flèche allant de D vers J donc 0.05
2ème lignes :
M/D : la flèche allant de M vers D donc 0.7
M/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.8
J/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 :
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 :
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 :