9
Des états • Pourquoi toute cette excitation autour des états ? • Le traceur nous donne des évènements ponctuels • Un état décrit comment se trouve le système pendant un intervalle de temps

Des états

  • Upload
    allan

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

Des états. Pourquoi toute cette excitation autour des états ? Le traceur nous donne des évènements ponctuels Un état décrit comment se trouve le système pendant un intervalle de temps. Un exemple Les statistiques. Un autre exemple Le control flow view de LTTV. - PowerPoint PPT Presentation

Citation preview

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