DocumentCode :
751697
Title :
Go4 multitasking class library with ROOT
Author :
Adamczewski, J. ; Al-Turany, M. ; Bertini, D. ; Essel, H.G. ; Hemberger, M. ; Kurz, N. ; Richter, M.
Author_Institution :
Gesellschaft fur Schwerionenforschung mbH, Darmstadt, Germany
Volume :
49
Issue :
2
fYear :
2002
fDate :
4/1/2002 12:00:00 AM
Firstpage :
521
Lastpage :
524
Abstract :
In the situation of monitoring an experiment, it is often necessary to control several independently running tasks from one graphical user interface (GUI). Such a GUI must be able to execute commands in the tasks even if they are busy, i.e., getting data, analyzing data, or waiting for data. Moreover, the tasks, being controlled by data streams (i.e., event data samples or slow control data), must be able to send data asynchronously to the GUI for visualization. A multitasking package (C++ class library) that meets these demands has been developed at the Gesellschaft fur Schwerionenforschung (GSI), Darmstadt, Germany, in the framework of a new analysis system, Go4, which is based on the ROOT system [CERN, R. Brun et al]. The package provides a thread manager, a task handler, and asynchronous intertask communication between threads through sockets. Hence, objects can be sent at any time from a task to the GUI or vice versa. At the GUI side, an incoming object is accepted by a thread and processed. In a task, an incoming command is queued by the accepting thread and executed in the execution thread. Utilizing the package one can implement nonblocking GUIs to control one or several tasks processing data in parallel and updating graphical elements in the GUI. The package could also be useful in building data dispatchers or in slow control applications. All components have been tested with Go4 analysis tasks and a very preliminary GUI
Keywords :
C++ language; computerised monitoring; data visualisation; graphical user interfaces; high energy physics instrumentation computing; multiprocessing programs; physical instrumentation control; software libraries; C++ class library; Go4 multitasking class library; ROOT; asynchronous intertask communication; data streams; event data samples; graphical user interface; independently running tasks control; monitoring; multitasking package; nonblocking GUI; task handler; thread manager; visualization; Data analysis; Data visualization; Graphical user interfaces; Libraries; Monitoring; Multitasking; Packaging; Sockets; Testing; Yarn;
fLanguage :
English
Journal_Title :
Nuclear Science, IEEE Transactions on
Publisher :
ieee
ISSN :
0018-9499
Type :
jour
DOI :
10.1109/TNS.2002.1003793
Filename :
1003793
Link To Document :
بازگشت