03.07.2013 Views

CEG4566/CSI4541 – Conception de systèmes temps réel

CEG4566/CSI4541 – Conception de systèmes temps réel

CEG4566/CSI4541 – Conception de systèmes temps réel

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> <strong>Conception</strong> <strong>de</strong> <strong>systèmes</strong> <strong>temps</strong> <strong>réel</strong><br />

Chapitre 6 <strong>–</strong> Vivacité, sécurité (Safety), fiabilité et tolérance aux fautes dans les <strong>systèmes</strong><br />

en <strong>temps</strong> <strong>réel</strong><br />

6.1 Introduction générale aux notions <strong>de</strong> sécurité et <strong>de</strong> vivacité<br />

• Une propriété <strong>de</strong> sécurité indique que rien <strong>de</strong> mauvais ne peut arriver.<br />

• Une propriété <strong>de</strong> vivacité indique qu’une bonne chose peut éventuellement arriver.<br />

• En pratique ses notions sont implémentées par l’utilisation <strong>de</strong>s threads et <strong>de</strong>s moniteurs.<br />

Notre objectif : Est <strong>de</strong> s’assurer que les <strong>de</strong>ux propriétés ci-<strong>de</strong>ssus sont satisfaites dans notre<br />

système en <strong>temps</strong> <strong>réel</strong>.<br />

6.2 Vivacité<br />

6.2.1 Définition<br />

Il est possible que <strong>de</strong>ux processus n'arrivent jamais à se synchroniser pour une raison ou pour une<br />

autre. Ceci peut conduire à l'absence <strong>de</strong> réalisation d'un objectif fixé sans pour autant qu'il y ait<br />

interblocage.<br />

Exemple: Pour réparer un chauffe-eau électrique, le plombier peut <strong>de</strong>man<strong>de</strong>r que l’alimentation<br />

électrique soit correctement installée: il faut donc l'intervention préalable <strong>de</strong> l'électricien;<br />

l'électricien peut lui exiger <strong>de</strong> ne faire les travaux que lorsque il n’y ai plus <strong>de</strong> risques et que les<br />

problèmes <strong>de</strong> fuites d'eau seront résolus : il faut au préalable l'intervention du plombier<br />

Les <strong>de</strong>ux processus sont actifs (ils viennent régulièrement) mais ils ne font pas progresser les<br />

choses : on est face à une activité non constructive et donc un problème <strong>de</strong> vivacité<br />

6.2.2 Propriétés <strong>de</strong> la vivacité<br />

Soit l’exemple suivant (d’après Jeff Magee). Un passage sur un pont à sens unique ne peut laisser<br />

passer les voitures que sur une seule voie.<br />

Les voitures ne peuvent avancer concurremment que ci elles vont dans la même direction.<br />

Chapitre VI - <strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> RNM <strong>–</strong> SIGE <strong>–</strong> UOttawa <strong>–</strong> Hiver 2013<br />

1


On a un problème si <strong>de</strong>ux voitures avançant dans <strong>de</strong>ux directions différentes entrent sur le pont en<br />

même <strong>temps</strong>.<br />

Mo<strong>de</strong>l :<br />

- Événements ou actions intéressantes ? Entrer et Sortir<br />

- Processus? Voitures et Pont<br />

- Propriétés? Sens unique<br />

- Définir chaque processus et les interactions entre processus (structure)<br />

- const N = 3 //nombre <strong>de</strong> chaque type <strong>de</strong> voiture<br />

- Range T = 0..N //comptage <strong>de</strong> voiture<br />

- Range ID= 1..N //I<strong>de</strong>ntité <strong>de</strong> la voiture<br />

La question est : Est-ce chaque voiture a éventuellement une chance <strong>de</strong> traverser le pont? On dit<br />

qu’elle progresse.<br />

La propriété <strong>de</strong> progression indique qu’il est toujours possible qu’une action va éventuellement<br />

s’exécuter.<br />

La progression est le contraire <strong>de</strong> la famine (nom donné à une situation où une action n’a aucune<br />

<strong>de</strong> s’exécuter).<br />

Choix équitable : Si un ensemble <strong>de</strong> transitions est exécuté indéfiniment souvent, alors chaque<br />

transition <strong>de</strong> cet ensemble doit être exécutée indéfiniment souvent. Exemple : Jeter indéfiniment<br />

une pièce en l’air, les <strong>de</strong>ux faces <strong>de</strong> la pièce (pile, face) vont sortir indéfiniment souvent.<br />

Si on applique le principe du choix équitable à notre exemple <strong>de</strong> pont, il y aura toujours<br />

progression.<br />

progress BLUECROSS = {blue[ID].enter}<br />

progress REDCROSS = {red[ID].enter}<br />

Aucune violation <strong>de</strong> la progression détectée.<br />

Pour détecter <strong>de</strong>s violations <strong>de</strong> la règle <strong>de</strong> progression, il faut soumettre le système à <strong>de</strong>s<br />

situations où le choix équitable n’est plus possible. Par exemple, une congestion du pont. Dans ce<br />

cas on impose une règle d’ordonnancement adaptée pour éviter la famine et assurer la<br />

progression.<br />

Chapitre VI - <strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> RNM <strong>–</strong> SIGE <strong>–</strong> UOttawa <strong>–</strong> Hiver 2013<br />

2


Exemple d’algorithme (d’après Jeff Magee) :<br />

Le problème est qu’il se peut que <strong>de</strong>s voitures atten<strong>de</strong>nt aux <strong>de</strong>ux extrémités du pont et que le<br />

pont n’autorisent ni les voitures bleues ni rouges à le traverser. Si on suppose qu’on a 3 voitures<br />

rouges et 3 bleues qui atten<strong>de</strong>nt, on aura le cas suivant :<br />

red.1.request<br />

red.2.request<br />

red.3.request<br />

blue.1.request<br />

blue.2.request<br />

blue.3.request<br />

Solution?<br />

Introduire une certaine asymétrie dans le problème sous la forme d’une variable booléenne (bt)<br />

qui casse le blocage en indiquant si c’est le tour <strong>de</strong>s bleues ou <strong>de</strong>s rouges <strong>de</strong> traverser.<br />

Arbitrairement on initialise bt à ‘1’ ce qui donne la priorité au bleues.<br />

Chapitre VI - <strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> RNM <strong>–</strong> SIGE <strong>–</strong> UOttawa <strong>–</strong> Hiver 2013<br />

3


6.3 Sécurité (safety)<br />

6.3.1 Définitions<br />

Aptitu<strong>de</strong> d’une entité à maintenir un niveau d’acceptabilité d’événement à priori redoutés pouvant<br />

mettre en cause immédiatement ou à terme la vie <strong>de</strong> l’homme, l’intégrité <strong>de</strong> ses biens, son<br />

environnement (c’est la probabilité que le système puisse faire apparaitre <strong>de</strong>s événements définis<br />

comme redoutés avec un niveau <strong>de</strong> risque inacceptable).<br />

Par contre, la sureté <strong>de</strong> fonctionnement :<br />

Caractérise l’aptitu<strong>de</strong> pour un système, un produit ou une activité <strong>de</strong> satisfaire l’ensemble <strong>de</strong>s<br />

performances opérationnelles requise pour une mission donnée.<br />

Quand on dit que la sécurité indique que rien <strong>de</strong> mauvais ne peut arriver, on sous-entend que :<br />

- Pas d’ARRET ou <strong>de</strong> BLOCAGE (aucune transition possible)<br />

- Pas d’ERREUR dans la détection d’un comportement erroné du système.<br />

- Aucun état ERREUR/ARRET qui soit un état puits du système (voir RdP, chapitre II).<br />

6.3.2 Exemple<br />

Dans l’exemple précé<strong>de</strong>nt du pont à sens unique, une erreur dans la détection du comportement<br />

erroné du système peut provoquer <strong>de</strong>s conséquences catastrophiques.<br />

Des solutions s’imposent :<br />

- Synchronisation<br />

- Priorité<br />

- Exclusion mutuelle<br />

Les conditions d’erreur indiquent ce qui n’est par requis par le système (ex : les exceptions)<br />

Dans les <strong>systèmes</strong> complexes et critiques, on préfère spécifier clairement toutes les exigences <strong>de</strong><br />

sécurité on indiquant ce qui est requis par le système.<br />

Souvent on fait ce qu’on appelle une analyse <strong>de</strong> sécurité.<br />

Remarque :<br />

En plus d’assurer la sécurité on doit assurer aussi la vivacité du système et une certaine sureté <strong>de</strong><br />

fonctionnement.<br />

Chapitre VI - <strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> RNM <strong>–</strong> SIGE <strong>–</strong> UOttawa <strong>–</strong> Hiver 2013<br />

4


6.4 Fiabilité et tolérance aux fautes<br />

6.4.1 Mise en situation<br />

Dans les <strong>systèmes</strong> à gran<strong>de</strong> présence <strong>de</strong> logiciel (<strong>de</strong>s millions <strong>de</strong> ligne <strong>de</strong> co<strong>de</strong>):<br />

- Pour chaque million <strong>de</strong> lignes <strong>de</strong> co<strong>de</strong> → 20000 erreurs (bugs)<br />

- 90% <strong>de</strong>s erreurs sont détectées lors <strong>de</strong>s tests logiciels<br />

- 200 erreurs vont apparaitre lors <strong>de</strong> la première année d’utilisation.<br />

- 1800 erreurs vont rester non détectées.<br />

- Et le pire c’est les erreurs dormantes !<br />

6.4.2 Définitions<br />

Fiabilité du logiciel :<br />

- On ne peut pas vraiment parler <strong>de</strong> fiabilité quand in s’agit <strong>de</strong> logiciel, la fiabilité est<br />

plutôt réserver au matériel.<br />

- Certain la définissent comme une mesure du succès qu’a un système à se conformer à<br />

certaines exigences <strong>de</strong> son comportement.<br />

Défaillance du logiciel :<br />

- C’est une déviation du système par rapport aux exigences pour lesquelles il a été<br />

développé.<br />

- Les défaillances résultent <strong>de</strong> problèmes internes au système qui se manifestent dans le<br />

comportement externe du système.<br />

- Ces problèmes sont appelés erreurs et les algorithmes qui les causent sont appelés fautes.<br />

- 4 Sources <strong>de</strong> fautes qui peuvent conduire à la défaillance du système :<br />

o Spécification (exigences) incorrectes.<br />

o Erreurs <strong>de</strong> conception du logiciel.<br />

o Erreurs matériel (processeur)<br />

o Erreurs <strong>de</strong> communication entre sous-<strong>systèmes</strong>.<br />

Classification <strong>de</strong>s fautes :<br />

- Transitoire : Elle apparait une fois puis disparait.<br />

- Intermittente : Elle est transitoire et apparait périodiquement.<br />

- Permanente : Continue d’exister jusqu’au moment où on répare la composante fautive.<br />

Types <strong>de</strong> défaillance :<br />

- Crash : Un serveur s’arrête <strong>de</strong> fonctionner mais jusque là il fonctionne correctement.<br />

- Omission : Un serveur omet <strong>de</strong> répondre à une <strong>de</strong>man<strong>de</strong>.<br />

- Timing : La réponse est en <strong>de</strong>hors <strong>de</strong>s limites temporelles imposées par le système en<br />

<strong>temps</strong> <strong>réel</strong>.<br />

- Réponse incorrect.<br />

Chapitre VI - <strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> RNM <strong>–</strong> SIGE <strong>–</strong> UOttawa <strong>–</strong> Hiver 2013<br />

5


- Défaillance arbitraire (Byzantine) : Des réponses arbitraires sont produites à <strong>de</strong>s <strong>temps</strong><br />

arbitraires.<br />

Erreur <strong>de</strong><br />

contrainte<br />

6.4.3 Risques et sécurité<br />

Classification <strong>de</strong>s mo<strong>de</strong>s <strong>de</strong> défaillance<br />

- dans le cadre <strong>de</strong>s <strong>systèmes</strong> informatiques, la sécurité doit couvrir aussi bien les nuisances<br />

<strong>de</strong> nature aléatoire (les dangers) que les nuisances <strong>de</strong> nature volontaire (les menaces).<br />

- Pour bien marquer cette distinction, les spécialistes <strong>de</strong> gestion <strong>de</strong>s risques informatiques<br />

utilisent les termes <strong>de</strong> :<br />

La sécurité-innocuité :<br />

o Sécurité-innocuité dans le premier cas (Safety)<br />

o Sécurité-confi<strong>de</strong>ntialité dans le second cas (Security)<br />

- Elle concerne l’aptitu<strong>de</strong> du système à ne pas connaitre d’événements catastrophiques.<br />

- Les dangers sont <strong>de</strong>s défaillances du matériel, les défaillances du logiciel et les erreurs<br />

humaines non intentionnelles (non malicieuses).<br />

- Ces aspects sont traités dans le cadre <strong>de</strong> la sureté <strong>de</strong> fonctionnement.<br />

La sécurité-confi<strong>de</strong>ntialité :<br />

Erreur<br />

<strong>de</strong><br />

valeur<br />

Mo<strong>de</strong> défaillance<br />

Domaine valeur Domaine <strong>temps</strong><br />

En avance Omission En retard<br />

- Elle concerne l’aptitu<strong>de</strong> du système à se prémunir <strong>de</strong> la manipulation non-autorisée <strong>de</strong><br />

l’information à <strong>de</strong>s fins malveillantes.<br />

- Ces aspects sont traités dans le cadre <strong>de</strong> la sécurité <strong>de</strong>s <strong>systèmes</strong> informatiques.<br />

Note : Dans notre cours <strong>de</strong> système en <strong>temps</strong> <strong>réel</strong>, on ne regar<strong>de</strong> que les aspects <strong>de</strong> sureté <strong>de</strong><br />

fonctionnement (safety)<br />

Chapitre VI - <strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> RNM <strong>–</strong> SIGE <strong>–</strong> UOttawa <strong>–</strong> Hiver 2013<br />

Aléatoire<br />

(Incontrollable)<br />

Défaillance sour<strong>de</strong> Arrêt Défaillance contrôlée<br />

6


Exercice :<br />

Cocher la bonne case : Sécurité-innocuité? ou <strong>–</strong>confi<strong>de</strong>ntialité?<br />

6.4.4 Tolérance aux fautes<br />

• Les <strong>systèmes</strong> embarqués, critiques et en <strong>temps</strong> <strong>réel</strong> sont toujours conçus comme étant <strong>de</strong>s<br />

<strong>systèmes</strong> ‘tolérants aux fautes’.<br />

• La tolérance aux fautes est fortement liée aux notions suivantes : Disponibilité, fiabilité,<br />

sécurité, sureté, maintenabilité. C’est ce qu’on appelle la ‘dépendabilité’.<br />

Prêt à<br />

l’usage<br />

Disponible<br />

Continuité<br />

<strong>de</strong><br />

délivrance<br />

du service<br />

Fiable<br />

Sécuritaire<br />

Dépendabilité<br />

Pas <strong>de</strong><br />

conséquences<br />

catastrophiques<br />

Pas d’accès<br />

non autorisé<br />

à<br />

l’information<br />

Confi<strong>de</strong>ntiel<br />

Chapitre VI - <strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> RNM <strong>–</strong> SIGE <strong>–</strong> UOttawa <strong>–</strong> Hiver 2013<br />

Pas<br />

d’altération <strong>de</strong><br />

l’information<br />

Intègre<br />

Aptitu<strong>de</strong> à<br />

être<br />

réparé<br />

Maintenable<br />

7


Exemple : Une attaque cybernétique :<br />

6.4.5 Comment construire un système en <strong>temps</strong> <strong>réel</strong> tolérant aux fautes?<br />

Réponse 1 : Il faut construire un système sûr <strong>de</strong> sa conception à sa validation.<br />

Évitement<br />

<strong>de</strong>s fautes<br />

Tolérance<br />

aux fautes<br />

Un Un Un Un système système système système sûr sûr sûr sûr <strong>de</strong> <strong>de</strong> <strong>de</strong> <strong>de</strong> sa sa sa sa conception conception conception conception<br />

à à à à sa sa sa sa validation validation<br />

validation validation<br />

Chapitre VI - <strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> RNM <strong>–</strong> SIGE <strong>–</strong> UOttawa <strong>–</strong> Hiver 2013<br />

Élimination<br />

<strong>de</strong>s fautes<br />

Prévision<br />

<strong>de</strong>s fautes<br />

8


Réponse 2 : Il faut prévoir <strong>de</strong>s dispositions à la sécurité<br />

Réponse 3 : Il faut intervenir à différentes étapes <strong>de</strong> la conception pour démontrer une assurance<br />

<strong>de</strong> la conception et une assurance qualité.<br />

Chapitre VI - <strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> RNM <strong>–</strong> SIGE <strong>–</strong> UOttawa <strong>–</strong> Hiver 2013<br />

9


6.5 Étu<strong>de</strong> <strong>de</strong> cas, Pompe à insuline pour personnes diabétiques<br />

(D’après Ian Sommerville, Software Engineering 8th edition)<br />

6.5.1 Introduction<br />

• Les <strong>systèmes</strong> médicaux intègrent <strong>de</strong> plus en plus <strong>de</strong>s <strong>systèmes</strong> informatiques qui sont souvent<br />

critiques. La défaillance <strong>de</strong> ces <strong>systèmes</strong> peut causer un danger pour la santé ou la vie <strong>de</strong>s<br />

patients.<br />

• La sécurité <strong>de</strong>s patients dépend du bon fonctionnement <strong>de</strong> ces équipements ainsi que <strong>de</strong> leur<br />

exacte réponse dans le <strong>temps</strong>.<br />

• Contrairement aux <strong>systèmes</strong> industriels, ces instrumentations biomédicales sont souvent<br />

fortement intégrées et nécessitent une très gran<strong>de</strong> précision.<br />

6.5.2 Mise en situation<br />

Les personnes soufrant <strong>de</strong> diabète ne sécrètent plus d’hormones naturelles pour le métabolisme<br />

du glucose. La fonction du pancréas est remplacée par une insuline artificielle. D’où dans certains<br />

cas la nécessité d’utiliser <strong>de</strong>s pompes à insuline.<br />

La pompe utilise un capteur qui mesure la quantité <strong>de</strong> glucose dans le sang à <strong>de</strong>s intervalles <strong>de</strong><br />

<strong>temps</strong> réguliers. L’insuline sera injectée à <strong>de</strong>s quantités qui ramènent le taux <strong>de</strong> glucose au taux<br />

‘normal’. On observe donc, qu’on a <strong>de</strong>s contraintes <strong>de</strong> <strong>temps</strong> et <strong>de</strong> précision.<br />

Les attributs <strong>de</strong> ce type <strong>de</strong> système sont nécessairement :<br />

- La disponibilité.<br />

- La fiabilité<br />

- La sécurité<br />

- La vivacité<br />

Question : Justifier ces trois attributs.<br />

Chapitre VI - <strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> RNM <strong>–</strong> SIGE <strong>–</strong> UOttawa <strong>–</strong> Hiver 2013<br />

10


6.5.3 Architecture du système<br />

Le flux <strong>de</strong> données pour un tel système peut se représenté comme suit :<br />

Blood<br />

Insulin<br />

6.5.4 Algorithme<br />

- Mesurer le taux <strong>de</strong> glucose dans le sang<br />

- Comparer <strong>de</strong>s mesures successives.<br />

- Si le niveau <strong>de</strong> glucose augmente, alors injecter <strong>de</strong> l’insuline<br />

- Maintenir un niveau stable <strong>de</strong> glucose<br />

- Répéter.<br />

Needle<br />

assembly<br />

Sensor<br />

Blood sugar<br />

sensor<br />

Insulin<br />

pump<br />

Blood<br />

parameters<br />

Insulin reservoir<br />

Pump Clock<br />

Controller<br />

Display1 Display2<br />

Power supply<br />

Blood sugar<br />

analysis<br />

Insulin<br />

requirement<br />

computation<br />

Pump control<br />

commands<br />

Insulin<br />

Insulin<br />

<strong>de</strong>livery<br />

controller<br />

requirement<br />

Chapitre VI - <strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> RNM <strong>–</strong> SIGE <strong>–</strong> UOttawa <strong>–</strong> Hiver 2013<br />

Alarm<br />

Blood sugar<br />

level<br />

11


Note : L’injection <strong>de</strong> l’insuline ne dépend pas seulement <strong>de</strong> la quantité <strong>de</strong> glucose dans le sang<br />

mais aussi <strong>de</strong>s injections précé<strong>de</strong>ntes car l’action <strong>de</strong> l’insuline n’est pas instantanée. L’algorithme<br />

<strong>de</strong> décision d’injecter <strong>de</strong> l’insuline et sa quantité est assez complexe.<br />

6.5.5 Scénarios d’injection d’insuline<br />

Niveau<br />

De glucose<br />

6.5.6 Travail personnel<br />

Injecter<br />

t1 t2 t3<br />

Injecter<br />

Ne pas injecter<br />

Ne pas injecter<br />

Ne pas injecter<br />

Étudier et analyser en détail cette pompe à insuline. Décrire <strong>de</strong>s architectures logicielles et<br />

matérielles qui respectent les attributs <strong>de</strong> ce système en <strong>temps</strong> <strong>réel</strong>, embarqué et critique.<br />

Chapitre VI - <strong>CEG4566</strong>/<strong>CSI4541</strong> <strong>–</strong> RNM <strong>–</strong> SIGE <strong>–</strong> UOttawa <strong>–</strong> Hiver 2013<br />

Région indésirable<br />

Région sécuritaire<br />

Région non sécuritaire<br />

Temps<br />

12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!