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
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 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)
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
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 valeurs
d’é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.
Système d’étatsGestionnaire d’évènements
fork() Ajouter entréeNouveau processus
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
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