Visualization of Concurrent Program Executions C ARTHO K

  • Slides: 13
Download presentation
Visualization of Concurrent Program Executions C. ARTHO, K. HAVELUND, AND S. HONIDEN Gan Lin,

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

[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

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

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

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

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,

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

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

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

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

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

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

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