90 likes | 228 Views
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.
E N D
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
Un autre exempleLe control flow viewde LTTV • Indique pour chaque instant que fait le processus: • Exécution, bloqué, en appel système, etc. Processus 0 Processus 1 Processus 2 Processus 3 Temps
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.
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 valeursd’états pendant la lecture de latrace.
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. Gestionnaire d’évènements Système d’états Ajouter entrée Nouveau processus fork()
Quack ? Quark ! Légende Attribut Quark Valeur processus (nulle) 0 32 45 … … (nulle) 1 (nulle) 2 exec_name parent exec_name parent "bash" 3 17 4 "grep" 5 32 6
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
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