systèmes en temps réel sujets divers. sujets divers - 2 synopsis services dexceptions encore plus...

15
Systèmes en temps réel Sujets divers

Upload: maurice-gilbert

Post on 03-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Systèmes en temps réel

Sujets divers

Page 2: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 2

Synopsis

Services d’exceptions Encore plus sur les services de chrono Cardinalité et structure de capsule

Page 3: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 3

Services d’exceptions

Comme nous allons voir dans les semaines qui viennent, la tolérance en défaillance est un requis critique de la majorité des systèmes en temps réel; le traitement des exceptions devient alors un aspect très important de design

Les Services d’exceptions de RoseRT fournit un concept de ports d’Exception (système) avec lequel les capsules peuvent lever et traiter les signaux d’exception (RTExceptionSignal)

Page 4: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 4

Services d’exceptions (2)

Les ports d’exceptions sont de type Exception Les signaux d’exceptions sont de type

RTExceptionSignal RTExceptionSignal méthodes:

raise( ); {exceptions doivent être levées par l’application}

Signaux d’exceptions définis: userError(“une valeur RTTyped définit par l’utilisateur”); arithmaticError(“ …” ); error(“…”); notFoundError(“ …” ); notUnderstoodError(“ …” ); serviceAccessError(“ …” ); streamError(“ …” ); subclassResponsibilityError(“ …” ); timesliceError(“ …” );

Page 5: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 5

Services d’exceptions (3)

exemple// en entrée dans l’état deliver// lève une erreur si l’enregistrement SAP plante

if ( robotPort.registerSAP(“deliveryService”) != 1 ){

errorPort.serviceAccessError(“ne peut pas connecter au service de livraison”).raise( );

}// dans la transition à l’état ErrorRTString eMessage = *(RTString *)getMsg()->getData();char *eMessage = (char *)getMsg()->getData();eLog.log(eMessage);

Page 6: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 6

Encore plus sur les services de chrono

Un autre aspect critique dans le design des systèmes en temps réel est la capacité de modéliser l’information temporelle

L’approche événementielle et centré sur les machines d’états utilisée en RT-UML supporte bien la modélisation des événements ordonnancés temporellement,

Cependant, pour modéliser les événements chronologiques ou périodiques (communément retrouvés dans les STR), nous avons besoin d’un autre ensemble de services – Les services de chrono

Page 7: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 7

Encore plus sur les services de chrono (2)

Les services de chrono fournissent les fonctions de chrono relatif ou absolu

Le type RTTimespec fournit une façon de spécifier des variables de temps en secondes (ou nsecs)

Les ports chronos fournissent un mécanisme pour régler/canceller des chronos pour les capsules et d’accéder le temps de système méthodes: informIn( ), informEvery( ), informAt( ),

cancelTimer( RTTimerID), currentTime( )

Le type RTTimerID fournit une façon d’identifier des actions de ports chronos spécifiques

Page 8: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 8

Encore plus sur les services de chrono (3)

exemple// règle un chrono périodique en entrant l’état Operate// note: RTTimerID perTID est définit sur la capsuleRTTimespec updatePeriod(0, 750000000);perTID = perTimerPort.informEvery(updatePeriod);

// canceller le chrono entrant l’état Shutdownif ( perTimerPort.cancelTimer(perTID) != 1 ){ systemErrorPort.userError(“erreur de cancellation

chrono”).raise( );}

Page 9: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 9

Encore plus sur les services de chrono (4)

Un autre exemple// note: ce qui suit donne une erreur commune

// à l’exécution (mauvaise priorité sur un port chrono)someTimerPort.informIn(3, 500000000);

// informIn est une méthode surchargé//où dans la signature suivante, prio est optionnelTiming::informIn( RTTimespec, [int prio]);

// et ce que vous vouliez était probablement:someTimerPort.informIn(RTTimespec(3, 500000000));

Page 10: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 10

Cardinalité et Structure de Capsule

cardinalité sur les rôles de capsule fixe : définit le nombre de rôles de capsule

répliqué pour créer lors de la création de la capsule contenant

optionnel / plug-in : définit le nombre de rôles de capsule maximum qui peuvent être créés dynamiquement par la capsule contenant

cardinalité sur ports détermine le nombre d’instances d’un port requis pour permettre les connections avec les

rôles de capsule répliqués chaque port répliqué partage un protocole

commun

Page 11: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 11

Cardinalité et Structure de Capsule - Patterns structurels communs

Étoile

22

2

Page 12: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 12

Cardinalité et Structure de Capsule - Patterns structurels communs (2)

Bus

2 2

Page 13: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 13

Cardinalité et Structure de Capsule - Patterns structurels communs (3)

Tableau2 2

Page 14: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 14

Cardinalité et Structure de Capsule - Patterns structurels communs (4)

Combinaison

3

3

2

3

3

2

Page 15: Systèmes en temps réel Sujets divers. Sujets divers - 2 Synopsis Services dexceptions Encore plus sur les services de chrono Cardinalité et structure

Sujets divers - 15

Exercice Divers

Modifiez le diagramme de structure de Production Line pour supporter les requis suivants: deux lignes de productions ou plus ont été ajoutées chaque ligne de production est équipée avec 5

Workstations identiques capable de produire des widgets

a. initialement 3 Robots sont disponibles, un pour chaque ligne de production

b. plus tard, un 4ième Robot devient disponible et le gestionnaire décide qu’il est mieux qu’ils soient vues comme faisant partie à la manufacture entière et sont donc partagés par toutes les lignes de production.