DocumentCode
1669405
Title
Choosing among alternative pasts
Author
Biberstein, Marina ; Farchi, Eitan ; Ur, Shmuel
Author_Institution
IBM Haifa Labs., Haifa Univ., Israel
fYear
2003
Abstract
The main problem with testing concurrent programs is their non-determinism: two executions of such a program may yield different results. The traditional solution is to identify and examine the race conditions. A different approach is that of generating different interleavings at runtime using embedded sleep statements. Advantages of this approach over the traditional one include its ability to identify more problems, and the absence of the false alarms. This paper proposes a totally different technique for the generation of interleavings. Operations on shared variables are tracked. Every time a shared variable is read, the read value is chosen among the values that the variable could hold in some interleaving consistent with the past observed events. The event timing restrictions are then updated based on the value chosen. The problem of identifying legal read values is far from simple due to the fact that past value substitutions affect future ones. Our solution is computationally intensive and, therefore, impractical as is. However, insights gained from it lead to practical heuristics for operating the embedded sleep statements.
Keywords
multi-threading; program testing; concurrent program testing; embedded sleep statements; event timing restriction updating; interleaving; legal read values; nondeterminism; shared variables; Fault detection; Fault diagnosis; Interleaved codes; Law; Legal factors; Runtime; Sleep; Testing; Timing; Yarn;
fLanguage
English
Publisher
ieee
Conference_Titel
Parallel and Distributed Processing Symposium, 2003. Proceedings. International
ISSN
1530-2075
Print_ISBN
0-7695-1926-1
Type
conf
DOI
10.1109/IPDPS.2003.1213516
Filename
1213516
Link To Document