103,866 research outputs found

    Producing Scheduling that Causes Concurrent Programs to Fail

    Get PDF
    A noise maker is a tool that seeds a concurrent program with conditional synchronization primitives (such as yield()) for the purpose of increasing the likelihood that a bug manifest itself. This work explores the theory and practice of choosing where in the program to induce such thread switches at runtime. We introduce a novel fault model that classifies locations as .good., .neutral., or .bad,. based on the effect of a thread switch at the location. Using the model we explore the terms in which efficient search for real-life concurrent bugs can be carried out. We accordingly justify the use of probabilistic algorithms for this search and gain a deeper insight of the work done so far on noise-making. We validate our approach by experimenting with a set of programs taken from publicly available multi-threaded benchmark. Our empirical evidence demonstrates that real-life behavior is similar to what our model predicts

    An extended case study on the phenomenology of sequence-space synesthesia

    Get PDF
    Investigation of synesthesia phenomenology in adults is needed to constrain accounts of developmental trajectories of this trait. We report an extended phenomenological investigation of sequence-space synesthesia in a single case (AB). We used the Elicitation Interview (EI) method to facilitate repeated exploration of AB's synesthetic experience. During an EI the subject's attention is selectively guided by the interviewer in order to reveal precise details about the experience. Detailed analysis of the resulting 9 h of interview transcripts provided a comprehensive description of AB's synesthetic experience, including several novel observations. For example, we describe a specific spatial reference frame (a "mental room") in which AB's concurrents occur, and which overlays his perception of the real world (the "physical room"). AB is able to switch his attention voluntarily between this mental room and the physical room. Exemplifying the EI method, some of our observations were previously unknown even to AB. For example, AB initially reported to experience concurrents following visual presentation, yet we determined that in the majority of cases the concurrent followed an internal verbalization of the inducer, indicating an auditory component to sequence-space synesthesia. This finding is congruent with typical rehearsal of inducer sequences during development, implicating cross-modal interactions between auditory and visual systems in the genesis of this synesthetic form. To our knowledge, this paper describes the first application of an EI to synesthesia, and the first systematic longitudinal investigation of the first-person experience of synesthesia since the re-emergence of interest in this topic in the 1980's. These descriptions move beyond rudimentary graphical or spatial representations of the synesthetic spatial form, thereby providing new targets for neurobehavioral analysis

    Communicating Java Threads

    Get PDF
    The incorporation of multithreading in Java may be considered a significant part of the Java language, because it provides udimentary facilities for concurrent programming. However, we belief that the use of channels is a fundamental concept for concurrent programming. The channel approach as described in this paper is a realization of a systematic design method for concurrent programming in Java based on the CSP paradigm. CSP requires the availability of a Channel class and the addition of composition constructs for sequential, parallel and alternative processes. The Channel class and the constructs have been implemented in Java in compliance with the definitions in CSP. As a result, implementing communication between processes is facilitated, enabling the programmer to avoid deadlock more easily, and freeing the programmer from synchronization and scheduling constructs. The use of the Channel class and the additional constructs is illustrated in a simple application

    A Fuzzy Petri Nets Model for Computing With Words

    Full text link
    Motivated by Zadeh's paradigm of computing with words rather than numbers, several formal models of computing with words have recently been proposed. These models are based on automata and thus are not well-suited for concurrent computing. In this paper, we incorporate the well-known model of concurrent computing, Petri nets, together with fuzzy set theory and thereby establish a concurrency model of computing with words--fuzzy Petri nets for computing with words (FPNCWs). The new feature of such fuzzy Petri nets is that the labels of transitions are some special words modeled by fuzzy sets. By employing the methodology of fuzzy reasoning, we give a faithful extension of an FPNCW which makes it possible for computing with more words. The language expressiveness of the two formal models of computing with words, fuzzy automata for computing with words and FPNCWs, is compared as well. A few small examples are provided to illustrate the theoretical development.Comment: double columns 14 pages, 8 figure

    Lifeguard: Local Health Awareness for More Accurate Failure Detection

    Full text link
    SWIM is a peer-to-peer group membership protocol with attractive scaling and robustness properties. However, slow message processing can cause SWIM to mark healthy members as failed (so called false positive failure detection), despite inclusion of a mechanism to avoid this. We identify the properties of SWIM that lead to the problem, and propose Lifeguard, a set of extensions to SWIM which consider that the local failure detector module may be at fault, via the concept of local health. We evaluate this approach in a precisely controlled environment and validate it in a real-world scenario, showing that it drastically reduces the rate of false positives. The false positive rate and detection time for true failures can be reduced simultaneously, compared to the baseline levels of SWIM
    • …
    corecore