Tackling Concurrency and Timing Problems
- 847 Downloads
Concurrent systems, either hardware or software, are notoriously difficult to design correctly in large part due to the complexities of nondeterministic execution. A concurrent system can perform many different correct computations for a given input sequence because the absolute order of execution is dependent on factors which cannot be known at design/compile time. Synchronization constructs are used to restrict the set of possible computations to correct computations only, but insertion of synchronization constructs is a manual and error-prone task. The detection of synchronization errors is made difficult because the manifestation of an error can depend on operation timing, which can change between executions. We define a class of synchronization errors and define the timing requirements to ensure the detection of these errors. We provide a coverage metric which can be used to determine whether or not a given test execution is sufficient to detect the defined class of synchronization errors.
Unable to display preview. Download preview PDF.
- Ben-Ari M (1990) Principles of concurrent and distributed programming. Prentice Hall International (UK) LtdGoogle Scholar
- Dijkstra EW (1968) Cooperating sequential processes, programming languages, 43–112Google Scholar
- Brinch Hansen P (1973) Operating system principles. Prentice Hall, Englewood Cliffs, NJGoogle Scholar
- Zhang Q, Harris IG (2001) A Validation fault model for timing-induced functional errors. In: International Test Conference, 813–820Google Scholar
- Rapps S, Weyuker EJ (1985) Selecting software test data using data flow information. IEEE Transactions on Software Engineering SE-11(4): 367–375Google Scholar
- Chakraborty S, Dill DL (1997) Approximate algorithms for time separation of events. In International Conference on Computer-Aided Design, 190–198Google Scholar
- Harris IG (2003) Fault models and test generation for hardware-software covalidation. IEEE Design and Test of Computers 20(4): 40–47Google Scholar