6,903 research outputs found
Synthesizing Finite-state Protocols from Scenarios and Requirements
Scenarios, or Message Sequence Charts, offer an intuitive way of describing
the desired behaviors of a distributed protocol. In this paper we propose a new
way of specifying finite-state protocols using scenarios: we show that it is
possible to automatically derive a distributed implementation from a set of
scenarios augmented with a set of safety and liveness requirements, provided
the given scenarios adequately \emph{cover} all the states of the desired
implementation. We first derive incomplete state machines from the given
scenarios, and then synthesis corresponds to completing the transition relation
of individual processes so that the global product meets the specified
requirements. This completion problem, in general, has the same complexity,
PSPACE, as the verification problem, but unlike the verification problem, is
NP-complete for a constant number of processes. We present two algorithms for
solving the completion problem, one based on a heuristic search in the space of
possible completions and one based on OBDD-based symbolic fixpoint computation.
We evaluate the proposed methodology for protocol specification and the
effectiveness of the synthesis algorithms using the classical alternating-bit
protocol.Comment: This is the working draft of a paper currently in submission.
(February 10, 2014
Safe and Verifiable Design of Concurrent Java Programs
The design of concurrent programs has a reputation for being difficult, and thus potentially dangerous in safetycritical real-time and embedded systems. The recent appearance of Java, whilst cleaning up many insecure aspects of OO programming endemic in C++, suffers from a deceptively simple threads model that is an insecure variant of ideas that are over 25 years old [1]. Consequently, we cannot directly exploit a range of new CASE tools -- based upon modern developments in parallel computing theory -- that can verify and check the design of concurrent systems for a variety of dangers\ud
such as deadlock and livelock that otherwise plague us during testing and maintenance and, more seriously, cause catastrophic failure in service. \ud
Our approach uses recently developed Java class\ud
libraries based on Hoare's Communicating Sequential Processes (CSP); the use of CSP greatly simplifies the design of concurrent systems and, in many cases, a parallel approach often significantly simplifies systems originally approached sequentially. New CSP CASE tools permit designs to be verified against formal specifications\ud
and checked for deadlock and livelock. Below we introduce CSP and its implementation in Java and develop a small concurrent application. The formal CSP description of the application is provided, as well as that of an equivalent sequential version. FDR is used to verify the correctness of both implementations, their\ud
equivalence, and their freedom from deadlock and livelock
Ukraine, Russia and the EU : Breaking the deadlock in the Minsk process
Although the Minsk process brought about a de-escalation of the conflict in Eastern Ukraine, not all of its 13 points have been implemented, including a ceasefire and withdrawal of heavy weaponry. In the absence of a military option, economic sanctions have become the core instrument of the EU and the US, to respond to Russia’s aggression. At the end of June 2016, when EU Heads of State and Government meet to discuss the extension of sanctions against Russia, they should bear in mind that Russia did not implement the commitments it took upon itself in the framework of the Minsk agreements. Given the persistent deadlock in the Ukraine crisis, the leaders of the EU ought to agree to prolong the sanctions against Russia, push for the renegotiation of the Minsk II agreement and widen the ‘Normandy format’ to include the US and bolster reforms in Ukraine
Permission-Based Separation Logic for Multithreaded Java Programs
This paper motivates and presents a program logic for reasoning about multithreaded Java-like programs with concurrency primitives such as dynamic thread creation, thread joining and reentrant object monitors. The logic is based on concurrent separation logic. It is the first detailed adaptation of concurrent separation logic to a multithreaded Java-like language. The program logic associates a unique static access permission with each heap location, ensuring exclusive write accesses and ruling out data races. Concurrent reads are supported through fractional permissions. Permissions can be transferred between threads upon thread starting, thread joining, initial monitor entrancies and final monitor exits.\ud
This paper presents the basic principles to reason about thread creation and thread joining. It finishes with an outlook how this logic will evolve into a full-fledged verification technique for Java (and possibly other multithreaded languages)
SDL based validation of a node monitoring protocol
Mobile ad hoc network is a wireless, self-configured, infrastructureless
network of mobile nodes. The nodes are highly mobile, which makes the
application running on them face network related problems like node failure,
link failure, network level disconnection, scarcity of resources, buffer
degradation, and intermittent disconnection etc. Node failure and Network fault
are need to be monitored continuously by supervising the network status. Node
monitoring protocol is crucial, so it is required to test the protocol
exhaustively to verify and validate the functionality and accuracy of the
designed protocol. This paper presents a validation model for Node Monitoring
Protocol using Specification and Description Llanguage (SDL) using both Static
Agent (SA) and Mobile Agent (MA). We have verified properties of the Node
Monitoring Protocol (NMP) based on the global states with no exits, deadlock
states or proper termination states using reachability graph. Message Sequence
Chart (MSC) gives an intuitive understanding of the described system behavior
with varying node density and complex behavior etc.Comment: 16 pages, 24 figures, International Conference of Networks,
Communications, Wireless and Mobile 201
Data-Mining Synthesised Schedulers for Hard Real-Time Systems
The analysis of hard real-time systems, traditionally performed using RMA/PCP or simulation, is nowadays also studied as a scheduler synthesis problem, where one automatically constructs a scheduler which can guarantee avoidance of deadlock and deadline-miss system states. Even though this approach has the potential for a finer control of a hard real-time system, using fewer resources and easily adapting to further quality aspects (memory/energy consumption, jitter minimisation, etc.), synthesised schedulers are usually extremely large and difficult to understand. Their big size is a consequence of their inherent precision, since they attempt to describe exactly the frontier among the safe and unsafe system states. It nevertheless hinders their application in practise, since it is extremely difficult to validate them or to use them for better understanding the behaviour of the system. In this paper, we show how one can adapt data-mining techniques to decrease the size of a synthesised scheduler and force its inherent structure to appear, thus giving the system designer a wealth of additional information for understanding and optimising the scheduler and the underlying system. We present, in particular, how it can be used for obtaining hints for a good task distribution to different processing units, for optimising the scheduler itself (sometimes even removing it altogether in a safe manner) and obtaining both per-task and per-system views of the schedulability of the system
Kickstarting Choreographic Programming
We present an overview of some recent efforts aimed at the development of
Choreographic Programming, a programming paradigm for the production of
concurrent software that is guaranteed to be correct by construction from
global descriptions of communication behaviour
- …