Tackling Concurrency and Timing Problems

  • I. G. Harris
Part of the Springer Series in Advanced Microelectronics book series (MICROELECTR., volume 17)

7.1 Abstract

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.

Unable to display preview. Download preview PDF.


  1. [1]
    Ben-Ari M (1990) Principles of concurrent and distributed programming. Prentice Hall International (UK) LtdGoogle Scholar
  2. [2]
    Dijkstra EW (1968) Cooperating sequential processes, programming languages, 43–112Google Scholar
  3. [3]
    Hoare CAR (1974) Monitors: an operating system structuring concept. Communications of the ACM 17(10): 549–557CrossRefzbMATHGoogle Scholar
  4. [4]
    Brinch Hansen P (1973) Operating system principles. Prentice Hall, Englewood Cliffs, NJGoogle Scholar
  5. [5]
    Brinch Hansen P (1978) Distributed processes: a concurrent programming concept. Communications of the ACM 21: 934–941zbMATHGoogle Scholar
  6. [6]
    Hoare CAR (1978) Communicating sequential processes. Communications of the ACM 21: 666–667CrossRefzbMATHGoogle Scholar
  7. [7]
    Zhang Q, Harris IG (2001) A Validation fault model for timing-induced functional errors. In: International Test Conference, 813–820Google Scholar
  8. [8]
    Rapps S, Weyuker EJ (1985) Selecting software test data using data flow information. IEEE Transactions on Software Engineering SE-11(4): 367–375Google Scholar
  9. [9]
    Chakraborty S, Dill DL (1997) Approximate algorithms for time separation of events. In International Conference on Computer-Aided Design, 190–198Google Scholar
  10. [10]
    Harris IG (2003) Fault models and test generation for hardware-software covalidation. IEEE Design and Test of Computers 20(4): 40–47Google Scholar

Copyright information

© Springer-Verlag London Limited 2005

Authors and Affiliations

  • I. G. Harris
    • 1
  1. 1.Department of Computer ScienceUniversity of California IrvineUSA

Personalised recommendations