Download pptx - Des états

Transcript
Page 1: Des états

Des états

• Pourquoi toute cette excitation autour des états ?

• Le traceur nous donne des évènements ponctuels

• Un état décrit comment se trouvele système pendant un intervallede temps

Page 2: Des états

Un exempleLes statistiques

Temps Évènement

10 open("fichier1.txt") = 3 (descripteur de fichier)

20 read(fd = 3, ...)

30 close(fd = 3)

40 open("fichier2.txt") = 3 (descripteur de fichier)

50 read(fd = 3, ...)

60 close(fd = 3)

Page 3: Des états

Un autre exempleLe control flow view de LTTV

• Indique pour chaque instant que fait le processus:– Exécution, bloqué, en appel système, etc.

Temps

Processus 0

Processus 1

Processus 2

Processus 3

Page 4: Des états

Pourquoi un nouveau système d’état ?LTTV en possède déjà un…

• Plus générique– Celui de LTTV est fait sur mesure pour les

évènements noyaux de LTTng 0.x.

• Pour qu’il puisse être utilisé dans d’autres applications.

Page 5: Des états

Un système d’état tout neufMerci, Alexandre

• Répertoire clés / valeurs– Clés : « attributs »– Valeurs : « états »

• Clés organisées comme un système de fichier– Chaque nœud (interne ou feuille) possède une

valeur• On peut lire et écrire les valeurs

d’états pendant la lecture de latrace.

Page 6: Des états

Gestionnaire d’évènements

• L’utilisateur doit programmer un peu de colle.• Prendre les évènements et générer les

changements d’états correspondants.

Système d’étatsGestionnaire d’évènements

fork() Ajouter entréeNouveau processus

Page 7: Des états

Quark État

0

1

2

3

4

5

6

Quack ? Quark !

processus(nulle)

32(nulle)

45(nulle)

parent17

parent32

exec_name"grep"

exec_name"bash"

… …

0

1 2

3 4 5 6

LégendeAttributQuarkValeur

Page 8: Des états

Lien avec l’historique

• Le système peut enregistrer toutes les modifications des valeurs d’états

• Utilisation optionnelle de la librairie d’intervalles

• Méthodes pour accéder aux valeurs d’états passées

Page 9: Des états

Difficultés

• Définition d’un API assez léger

• Gestion de la mémoire – shared_ptr

• Abstraction du lien avec la librairie d’historique, ne pas avoir de dépendance


Recommended