Parallel program design: a foundation
Parallel program design: a foundation
Process Synchronization: Design and Performance Evaluation of Distributed Algorithms
IEEE Transactions on Software Engineering
Knowledge and common knowledge in a distributed environment
Journal of the ACM (JACM)
Strong Interaction Fairness Via Randomization
IEEE Transactions on Parallel and Distributed Systems
Common knowledge and update in finite environments
Information and Computation
An Effective Implementation for the Generalized Input-Output Construct of CSP
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communicating sequential processes
Communications of the ACM
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An order-based algorithm for implementing multiparty synchronization: Research Articles
Concurrency and Computation: Practice & Experience
Modeling Heterogeneous Real-time Components in BIP
SEFM '06 Proceedings of the Fourth IEEE International Conference on Software Engineering and Formal Methods
Priority scheduling of distributed systems based on model checking
Formal Methods in System Design
Code mutation in verification and automatic code correction
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Knowledge-Based distributed conflict resolution for multiparty interactions and priorities
FMOODS'12/FORTE'12 Proceedings of the 14th joint IFIP WG 6.1 international conference and Proceedings of the 32nd IFIP WG 6.1 international conference on Formal Techniques for Distributed Systems
Hi-index | 0.00 |
Component-based systems (including distributed programs and multiagent systems) involve a lot of coordination. This coordination is done in the background, and is transparent to the operation of the system. The reason for this overhead is the interplay between concurrency and non-deterministic choice: processes alternate between progressing independently and coordinating with other processes, where coordination can involve multiple choices of the participating components. This kind of interactions appeared as early as some of the main communication-based programming languages, where overhead effort often causes a restriction on the possible coordination. With the goal of enhancing the efficiency of coordination for component-based systems, we propose here a method for coordination-based on the precalculation of the knowledge of processes and coordination agents. This knowledge can be used to lift part of the communication or synchronization that appears in the background of the execution to support the interaction. Our knowledge-based method is orthogonal to the actual algorithms or primitives that are used to guarantee the synchronization: it only removes messages conveying information that knowledge can infer.