Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

A probe effect in concurrent programs

Published: 01 March 1986 Publication History

Abstract

No abstract available.

Cited By

View all
  • (2023)Don’t Trust Your Profiler: An Empirical Study on the Precision and Accuracy of Java ProfilersProceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3617651.3622985(100-113)Online publication date: 19-Oct-2023
  • (2023)An interview study about the use of logs in embedded software engineeringEmpirical Software Engineering10.1007/s10664-022-10258-828:2Online publication date: 11-Feb-2023
  • (2021)Understanding and improving model-driven IoT systems through accompanying digital twinsProceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3486609.3487210(197-209)Online publication date: 17-Oct-2021
  • Show More Cited By

Recommendations

Reviews

John Gauntlett Benedict Heal

We have all experienced programs which, like children, behave perfectly when being monitored, but cease to do so as soon as they are unleashed in a real environment. In this short paper, the author is concerned with this effect in the context of concurrent programs. He terms a “probe effect” any change in the correctness of execution, which results when delays are introduced into concurrent programs which contain errors in the synchronization logic. Correct programs would clearly be immune to the insertion of extra delay. Incorrect ones may sometimes start to work correctly, though having failed to do so without the delay; alternatively, a previous, apparently functioning program may cease behaving correctly when unrelated program modifications introduce extra delays. The paper describes experiments done to investigate the nature of this probe effect. A varying number of identical tasks, incorporating a typical synchronization error of a misplaced semaphore operation when writing to shared memory, were run concurrently under the nondeterministic scheduling of UNIX V7. In the given program, correct final values could sometimes arise even for some incorrect sequences of writes. Synchronization errors were detectable by both incorrect final values in the shared memory and incorrect sequences of writes in a log file of memory operations provided by the CBUG debugging environment. (CBUG also provided the means of introducing varying delays between the statement executions in the program.) Experiments were done varying the number of processes and the interstatement delay. The ratio of successful runs for each configuration was plotted against the inserted delay. Success was considered first as a correct final value, reached after a correctly ordered sequence of write operations. Later it was considered simply as a correct final value, ignoring “shared memory side-effects” of incorrect write sequences. All of the graphs show the same phenomenon—they indicate a stable region in which uniformly correct behavior results from large values of the delay, thus masking the logic error. For small values of the delay, there is a very unstable region, in which a small change to the delay produces very large changes in the proportion of successful runs. It is in this area that extra delays introduced with trivial program changes can have dramatic effects on the successful behavior of a program. The paper is an exciting and tantalizing introduction to a new way of looking at certain program malfunctions. Having been shown the phenomenon, though, it is a pity that there is not more in the way of discussion, particularly in attempting to relate the onset of the unstable behavior with the size of other delays in the system.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image Software
Software  Volume 16, Issue 3
March 1986
95 pages
ISSN:0038-0644
EISSN:1097-024X
Issue’s Table of Contents

Publisher

John Wiley & Sons, Inc.

United States

Publication History

Published: 01 March 1986

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Don’t Trust Your Profiler: An Empirical Study on the Precision and Accuracy of Java ProfilersProceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3617651.3622985(100-113)Online publication date: 19-Oct-2023
  • (2023)An interview study about the use of logs in embedded software engineeringEmpirical Software Engineering10.1007/s10664-022-10258-828:2Online publication date: 11-Feb-2023
  • (2021)Understanding and improving model-driven IoT systems through accompanying digital twinsProceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3486609.3487210(197-209)Online publication date: 17-Oct-2021
  • (2021)What’s the problem? interrogating actors to identify the root cause of concurrency bugsProceedings of the 11th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control10.1145/3486601.3486709(24-36)Online publication date: 17-Oct-2021
  • (2021)Tracing and its observer effect on concurrencyProceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3475738.3480940(88-96)Online publication date: 29-Sep-2021
  • (2021)Crumbs: Utilizing Functional Programming for Hardware Trace Data AnalysisProceedings of the 29th International Conference on Real-Time Networks and Systems10.1145/3453417.3453418(204-215)Online publication date: 7-Apr-2021
  • (2021)An interview study of how developers use execution logs in embedded software engineeringProceedings of the 43rd International Conference on Software Engineering: Software Engineering in Practice10.1109/ICSE-SEIP52600.2021.00015(61-70)Online publication date: 25-May-2021
  • (2020)NITROProceedings of the 28th International Conference on Real-Time Networks and Systems10.1145/3394810.3394812(78-88)Online publication date: 9-Jun-2020
  • (2019)A zero-positive learning approach for diagnosing software performance regressionsProceedings of the 33rd International Conference on Neural Information Processing Systems10.5555/3454287.3455330(11627-11639)Online publication date: 8-Dec-2019
  • (2015)Interleaving generation for data race and deadlock reproductionProceedings of the 2nd International Workshop on Software Engineering for Parallel Systems10.1145/2837476.2837480(26-34)Online publication date: 27-Oct-2015
  • Show More Cited By

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media