Visualization of Concurrent Program Executions C ARTHO K

![[Ar. HH 07] 2 �Artho, C. , Havelund, K. , Honiden, S. : Visualization [Ar. HH 07] 2 �Artho, C. , Havelund, K. , Honiden, S. : Visualization](https://slidetodoc.com/presentation_image_h/ab819897471e7c906cf129ae9ce336c9/image-2.jpg)











- Slides: 13
Visualization of Concurrent Program Executions C. ARTHO, K. HAVELUND, AND S. HONIDEN Gan Lin, OS Lab. , GNU
[Ar. HH 07] 2 �Artho, C. , Havelund, K. , Honiden, S. : Visualization of concurrent program executions. In: Proceedings of the 31 st Annual International Computer Software and Applications Conference (COMPSAC 2007), pp. 541546. IEEE Computer Society, Los Alamitos �To understanding dynamic behaviors in concurrent programs, traces produced by run-time verification monitors and software model checking are difficult to read, thus, the authors provide a visualization approach by extending UML sequence diagrams to support concurrent programs. Ar. HH 07_Gan Lin 2020/11/27
Contents 3 �Introduction �Visualization approach �Design decisions �Trace visualization �Visualizer architecture �Conclusion Ar. HH 07_Gan Lin 2020/11/27
Introduction 4 �Program analysis techniques Run-time verification monitor Software model checking �Trace reports Overly concise Large size �For concurrent programs Not clear to show happens-before relation Ar. HH 07_Gan Lin 2020/11/27
Introduction 5 �Visualization approches Still visualization: all events are visualized in one view, such as UML sequence diagrams � UML is not capable to capture asynchronous events Animation: using 2 D or 3 D animation to visualize events occurring Ar. HH 07_Gan Lin 2020/11/27
Visualization approach 6 �UML sequence diagrams Captures sequences of method calls �Limitations Can not deal with concurrency, and can not illustrate following: �A thread as data structure and executable task � “Invisible” task switches induced by thread scheduler � Activations and suspensions (wait on events or time-based) of threads � Happens-before relation � Locking Ar. HH 07_Gan Lin 2020/11/27
Visualization approach 7 �Extensions of UML Thread as a data structure: holds thread information, and can be extended with other data; Thread as an executable task: constitutes a light-weight process that shares the global heap. Fig. 1 Thread creation, start, and switch Ar. HH 07_Gan Lin 2020/11/27
Visualization approach 8 Fig. 2 Thread suspension Fig. 3 Thread notification Ar. HH 07_Gan Lin 2020/11/27
Design decisions 9 �Address all commonly available concurrency artifacts using four new symbols: Visualize of role of a thread as a task; Visualize thread activations and context switches; Visualize thread suspension; Visualize happens-before relation. Ar. HH 07_Gan Lin 2020/11/27
Trace visualization 10 �They implements a chat server as the example application. Fig. 4 Chat server architecture Ar. HH 07_Gan Lin 2020/11/27
Trace visualization 11 Fig. 5 Complex interaction illustrated by extended sequence diagram Ar. HH 07_Gan Lin 2020/11/27
Visualizer architecture 12 Fig. 6 Event extraction/visualization Ar. HH 07_Gan Lin 2020/11/27
Conclusion 13 �The approach based on UML sequence diagrams can illustrate a failure on a complex error trace clearly, and can also be used as a tool to reverse engineer program behaviors, it shows the essence of a trace. Ar. HH 07_Gan Lin 2020/11/27