Siegfried Loer and Ahmed Serhrouchni. Abstract. SPIN is a tool to simulate and validate Protocols. PROMELA, its

Size: px
Start display at page:

Download "Siegfried Loer and Ahmed Serhrouchni. Abstract. SPIN is a tool to simulate and validate Protocols. PROMELA, its"

Transcription

1 DIMACS Series in Discrete Mathematics and Theoretical Computer Science Volume 00, 19xx Creating Implementations from PROMELA Models Siegfried Loer and Ahmed Serhrouchni Abstract. SPIN is a tool to simulate and validate Protocols. PROMELA, its source language, is a formal description technique like SDL and Estelle that is based on communicating state machines. Unlike most other tools, SPIN is in the public domain and therefore is one of the most widely used formal verication tools today. PROMELA allows to specify distributed automata which can communicate using either message channels or shared memory. This contribution consists of an extension to SPIN which allows the creation of implementations from PROMELA specications. This can be used for the creation of test scenarios and the rapid prototyping of validated protocol implementations. 1. Introduction Formal Description Techniques (FDTs) are used in many elds of software engineering. One main application eld is the validation of software designs, especially telecommunication protocols, but they are equally applicable to other elds such as avionics, nuclear power control, medicine, railway control etc. [8] [9] [10] [11]. Usually the FDTs are used for the validation of a design concept. This validation can be achieved either by simulations of the design or with special validation algorithms. After the concept has shown to fulll the requirements, the formal specication usually is used as a guideline for the programmer for the creation of an implementation. However it can also be imagined that the formal specication is automatically translated into an implementation. This has the advantage of reducing the probability to introduce new faults when translating it. 2. PROMELA/SPIN The idea to automatically generate executable code from a formal specication is not new. Many eorts have been dedicated to this task in the past [4]. The advantage of the PROMELA / SPIN [1] system as basis for an automated generation of implementations is the high data consistency when using SPIN. There is only one tool which is used for the simulation and the generation of the validator. By using the same tool, it is less likely that there are inconsistencies between the 1991 Mathematics Subject Classication. Primary 54C40, 14E20; Secondary 46E25, 20C20. 1 c0000 American Mathematical Society /00 $ $.25 per page

2 Figure 1. Standard Abstract Tree For FDT Tools simulation and the validation. (It is still possible, since SPINs code for the simulation is quite dierent from the code which is generated as C source code for the validator. In most other systems, independent tools are used for simulation, validation and creation of the implementation. Those tools take the formal specication as a starting point and use an abstract tree like the one shown in gure 1, i.e. a dierent abstraction is used for simulation, validation and nal implementation. For the simulation and validation, this aspect is not too important. However, for the generation of an an implementation from PROMELA source code the goal obviously is to produce a validated implementation which has certain provable characteristics. To achieve this it is necessary to keep as close as possible to the validated code. This means that it is necessary to stay as close to the validated abstraction in the tree in gure 1. This was our starting point for the generation of the implementation. The validator which SPIN can generate uses a translation of the state machine specied in the PROMELA source code. All transitions in the PROMELA model are translated by SPIN into some lines of C code for the validator. An actual implementation of the model can therefore be realized by reusing this C code representation of the state machine instead of using the PROMELA source code as a basis. In fact Holzmann already mentioned this possibility to create implementations by proposing modications to the validator as an exercise in his book [1] (p. 317, ex. 13{5). In order to automate this process, it is suciant to modify SPIN so that it produces not the original validator but only its state machine part and afterwards automatically generates additional code that is used to execute this state machine. By modifying the tool SPIN, isolating the code for the generation of the state machine the \motor" of the validator and extending it with additional new code (mainly a scheduler), we achieve an implementation which has a very high delity to the validated code. The two branches of the abstract tree melt together into one (as shown in gure 2) since the same abstraction is used for validation and implementation. This is the originality of our contribution that distinguishes it from most other tools for the generation of implementations, which are usually implemented as separate, stand{alone tools (see [6] for a stand{alone PROMELA to C compiler).

3 Figure 2. Using The Same Tool For Validation And Implementation 3. Our PROMELA To C Compiler As we already mentioned, the validator which SPIN produces when called with the option \-a" is generated as C code. This code is structured in ve les, as depicted in gure 3. In order to re{use the state machine which SPIN generates corresponding to the PROMELA source we need the les \pan.m" (the forward moves) and \pan.t" (the transition matrix). In addition to those we use parts from \pan.c" (the main validator code) and \pan.h". Figure 4 shows an overview over the data dependencies with our extended SPIN tool. The shaded regions in the gure represent the extensions we made for the generation of implementations. This is mainly the scheduler but also some code that allows us to dene real{time timers and to communicate with other UNIX processes. Scheduling in the Implementation The state machine plus the additional C code for the implementation are compiled into a UNIX program. Thus multiple proctypes which are designed to run in parallel are executed in one single UNIX process. For the switching between the proctypes a scheduler which selects the next active proctype and takes care of external communications and of timers is needed. Non{Determinism. The most interesting feature of PROMELA as a language is the possibility to describe non{determinism. If non{deterministic choices are to be translated into executables (implementations), there are several possibilities for dealing with it. In \if..fi" and \do..od" statements, all executable branches from the current state of the state machine can be chosen in an arbitrary manner. Before choosing

4 Figure 3. Overview Of The Code That SPIN Produces When Called With The Option "-a" a branch, the scheduler therefore has to test if it is executable. The following three strategies for the choice of the next transition can be imagined: 1. It must be allowed to simplify the implementation by just choosing always the rst executable branch. The scheduler starts with the rst transition, checks if it is executable, if it isn't, it tests the second one, and so on. This makes it very compact and usually quite performant. The behavior of the implementation will be the same each time it is started because there is no random element in scheduling (except possible external events). 2. Another possibility is to use a random number generator to choose between the branches. The disadvantage of this method is that the same transition branch may be chosen more than once. The scheduler has to keep track of all branches that it already tried to execute because an \else" statement that might be one of the branches is only executable if there are no other possible transitions. Since \else" is only executable if all other statements in the proctypes state aren't, the scheduler has to do the random branch selections until it has reached all other branches. If a completely random choice is used, some unexecutable branches are probably chosen more than once. Therefore, the scheduler uses more CPU time than necessary. 3. A third possibility istochoose the rst branch to be executed in a random manner. Afterwards the remaining transitions can be tested sequentially. This costs almost no additional CPU time and has the advantage of introducing a random element into the implementation.

5 Figure 4. Code Dependencies With SPIN Since we wanted to have at least some random in our implementations, we decided to implement the third algorithm. This also allows us to use implementations for random simulations of the model. Blocking Proctypes. If there are no possibilities to execute any of the branches in a certain state of a proctype, this proctype should block. If this is true for all proctypes in a UNIX process (or if the current sequence of transitions is \atomic") then it is not necessary to check continuously whether a transition has become executable. The only types of events that could change this state of the UNIX process are external messages from other processes or timeouts. So it is possible to block the UNIX process until an external message event occurs or a timer expires. This reduces the CPU load of the machine on which the implementation runs. Atomic Sequences. In PROMELA, sequences of statements may be dened as \atomic" sequences. An atomic sequence should, from the point of view of the other proctypes, be seen as one single instruction that is not interruptible. During the execution of an atomic sequence, the scheduler must not switch to another proctype. However, starting with Version 2.0 of SPIN it is legitimate for an atomic sequence to block [2] [3]. In this case it should since Version 2.0 be allowed to switch to another proctype. This is implemented dierently in our scheduler. If an atomic sequence in the implementation blocks, the scheduler will stay in this proctype until it unblocks, even if this will never happen.

6 6 SIEGFRIED LOFFLER AND AHMED SERHROUCHNI The reason why we decided to interpret the semantics of the \atomic" statement dierently is that we wanted to add external events to implementations. However, if an implementation blocks in a certain state because it would have towait for an external event, one can never know if this event will ever occur or not, because it is not specied in the same model. Therefore we can not know if it is necessary to leave the atomic sequence in order to avoid a deadlock. A solution to this problem could be to prohibit the use of external channels inside atomic sequences. An easier solution is, in our opinion, to interpret the semantics as they were interpreted by older versions of SPIN, i.e. not allowing the change of proctypes inside atomic sequences at all. If a designer wants to allow a proctype change in a certain state, he should specify this explicitly by breaking the atomic sequence into multiple sequences which are separated by the operation in which the proctype change is to be allowed. This example shows that although we are using the same abstraction, treat it with the same tool and even use the same internal data structures as in validation, it is still possible to interpret the semantics of PROMELA dierently. Priorities. In Version 2.5 of SPIN, Holzmann added a mechanism to dene process priorities for use during random simulations [3]. Those priorities could be easily implemented in the scheduler, however they aren't yet. The priorities were implemented to improve the debugging facilities. For validation they are not used at all. Timer Mechanisms PROMELA was designed as a validation language. For the implementation of a protocol, there are some important requirements that are not yet covered by the language. For example it is absolutely necessary that one can dene a timeout. Since the timeout statement inpromela has initially been designed to avoid the blocking of a proctype, in PROMELA it is not possible to specify any value for a timeout. For the validation it is sucient to know that a timeout can occur in a certain state. If it can occur, it does not matter how long it may take until this happens since time is an element which does not exist in the validation. The original timeout statement therefore is not supported for the implementation. A solution to this problem could be to introduce a parameter that can be given to the timeout statement. This would have the advantage that existing PROMELA models could be modied very easily. On the other hand, it would have the disadvantage that a change to the language syntax would be necessary. Since we did not want tochange the syntax of PROMELA, we searched for another possibility. As a replacement, a timeout mechanism which uses message queues was implemented. This mechanism is close to the implementation of timers in SDL where timers basically are modeled as messages. For the communication with this timeout mechanism that is implemented in the runtime scheduler, the following three message channel names, whose names are reserved, were dened: 1. \set timer" This channel can be used to set a timer. The channel denition \chan set timer=[1] of f byte, byte g;" has to be used to dene the channel in the model. Afterwards, a message consisting of a timer identier

7 CREATING IMPLEMENTATIONS FROM PROMELA MODELS 7 and a value (in seconds) for the timer can be transmitted in a message to the implementation scheduler. 2. \timer" This queue is used by the implementation scheduler to send a message if the timer expires. The channel denition \chan timer = [1] of f byte g;" has to be added to the PROMELA model. The message consists of the timer identier that was sent through the set timer channel. 3. \del timer" This queue can be used to delete a timer before it expires. The denition for the channel is \chan del timer = [1] of f byte g;" The message should be the timer identier that was used when setting the timer. In recursive proctypes, it is advisable to use the \ pid" Variable to compute a unique timer identier. To validate a model which uses those timer queues, an additional PROMELA proctype has to be added to the specication which describes the timer mechanism in the scheduler, i.e. reads and writes the timer queues. External Communications We already mentioned that we added external events to the PROMELA models. For the design of the implementations, this results in the necessity to nd a way to specify such events in PROMELA. Since we did not want tochange the PROMELA syntax by introducing new language constructs, we decided to implement such external events using channels. These \external" channels are specied exactly like normal PROMELA channels, the only dierence is that we prex their names with \ext " in the specication. This allows us to use the existing tools for simulation and validation. In order to simulate or validate a model which communicates with other systems via external channels, it suces to include proctypes describing those external events into one single le used for simulation and validation. The external channels also allow us to divide one PROMELA specication into implementations which run in multiple UNIX processes and communicate with each other via external channels. For this we have to create a PROMELA source code for each UNIX process to be generated. Using \#include" preprocessor directives all proctypes can then be included either in the source le which is used for simulation or in the source les which are used for the compilation of the implementation. The connection of the UNIX processes is realized in a client{server architecture. The server always keeps track of the queue contents of the external channels in all connected UNIX processes. If a client wants to read from an external channel, it has to send a request to the server. On the other hand, the server noties all clients if the contents of any of the external channels changes. To avoid having access problems with two clients reading from the same channel we limited read access to an external channel to one UNIX process per channel. If a UNIX process has read from a channel, thereafter no other UNIX process is granted read access to the same channel. This reduces the communication between the UNIX processes and makes them much faster. Nevertheless, multiple proctypes are allowed to write into the same channel queue. For the inter{process communication between the UNIX processes, AF UNIX domain sockets are used. This makes it easy to distribute the processes over multiple machines by changing the AF UNIX domain into the AF INET internet domain.

8 8 SIEGFRIED LOFFLER AND AHMED SERHROUCHNI Upon compilation of a PROMELA model, one can specify whether the compiled UNIX process should be the server or a client by setting the appropriate switch. Since all channel queues are kept within the server, it is advisable to make the UNIX process the server which uses the external channels the most. 4. Future Work The most important drawback in our extended SPIN environment is that it is not yet possible to use synchronous channels for the communication between UNIX processes. Almost as important is the missing capability for \sorted send" and \random receive" operations between UNIX processes, which were added to PROMELA with version 2.0 of SPIN. [2] [3]. Also introduced with SPIN Version 2.0 and not yet supported are some other language constructs like the \d step" statement. It has to be mentioned that the compiler itself is not validated and most probably still contains quite a lot of bugs. Therefore the resulting implementations are not 100% validated. Another thing which is left to do is a validation of the protocol that we use for the connection of clients and servers. A basic description of this protocol can be found in [7]. 5. Conclusions With PROMELA / SPIN, Holzmann has attacked two of the main factors inhibiting more widespread use of specication or validation tools, namely diculty of use and the inherent limitations of the nite state reachability methods. However, for the step to the nal implementation, some diculties remain. The major drawback of PROMELA in its current state is that the semantics are still not exactly specied, therefore allowing interpretations which may lead to problems when implementing the design. Another problem is the missing capability of the language to rene the specication in a way that suces to describe details (like timeouts) of an implementation. Our extended SPIN tool is usable for the rapid prototyping of validated implementations of communication protocols. Because of our dierent interpretation of the \atomic" statement, it is possible for the implementation to behave not exactly as expected. The generated implementation is not 100% validated because we had to add code for a scheduler and for external communications which has not been exhaustively veried. The main application eld we see for the implementations generated with the current version of our extended SPIN tool is the rapid prototyping of testing scenarios. References [1] Gerard J. Holzmann, AT&T, Design and Validation of Computer Protocols, Prentice Hall, 1991 [2] Gerard J. Holzmann, AT&T, What's New in SPIN Version 2.0, in\spin Documentation",

9 CREATING IMPLEMENTATIONS FROM PROMELA MODELS 9 [3] Gerard J. Holzmann, AT&T, V2. Updates, in \SPIN Documentation", [4] A. A. F. Loureiro, S. T. Chanson and S. T. Vuing, FDT Tools for Protocol Development, Forte '92, Lannion, France, 1992 [5] E. Najm, F. Olsen, Telecom Paris, Reactive PROMELA, 1st SPIN Workshop, Montreal, 1995 [6] Eric Moreau, Jer^ome Paillet, PROMELA Compilateur Document Technique, Rapport de Stage, Telecom Paris, 1994 [7] S. Loer, A PROMELA To C Compiler, Rapport de Stage, Telecom Paris, [8] J. A. Chaves, Formal Methods At AT&T - An Industrial Usage Report, Forte 91, Sidney, 1991 [9] C. Jones, Formal Methods And Their Role In Industry, ASWEC 91, 1991 [10] R. P. Hautbois, P. de Saqui{Sannes, Results And Viewpoints On The Use Of Formal Languages, Workshop \Formal Methods, Modelling And Simulation For System Engineering", St{Quentin En Yvelines, France, 1995 [11] R. Groz, J. F. Monin, M. Phalippou, D. Vincent, Current Application Of Formal Methods In France Telecom CNET, Workshop \Formal Methods, Modelling And Simulation For System Engineering", St{Quentin En Yvelines, France, 1995 The rst author is also aliated with the University of Stuttgart, Germany. Siegfried Loffler, Ecole Nationale Superieure des Telecommunications, Departement Reseaux, 46 Rue Barrault, Paris Cedex 13, France address: floeff@tunix.mathematik.uni-stuttgart.de Ahmed Serhrouchni, Ecole Nationale Superieure des Telecommunications, Departement Reseaux, 46 Rue Barrault, Paris Cedex 13, France address: ahmed@res.enst.fr

What is SPIN(Simple Promela Interpreter) Elements of Promela. Material About SPIN. Basic Variables and Types. Typical Structure of Promela Model

What is SPIN(Simple Promela Interpreter) Elements of Promela. Material About SPIN. Basic Variables and Types. Typical Structure of Promela Model What is SPIN(Simple Promela Interpreter) Lecture XX SPIN and Promela A tool for analyzing mels of reactive systems Mels described in Promela Language with concurrent processes, Communication via channels,

More information

What is SPIN(Simple Promela Interpreter) Material About SPIN. Elements of Promela. Basic Variables and Types. Typical Structure of Promela Model

What is SPIN(Simple Promela Interpreter) Material About SPIN. Elements of Promela. Basic Variables and Types. Typical Structure of Promela Model What is SPIN(Simple Promela Interpreter) Lecture 3 SPIN and Promela A tool for analyzing mels of reactive systems Mels described in Promela Language with concurrent processes, Communication via channels,

More information

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, 28-3 April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC 1131-3 Martin hman Stefan Johansson Karl-Erik rzen Department of Automatic

More information

Promela and SPIN. Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH. Promela and SPIN

Promela and SPIN. Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH. Promela and SPIN Promela and SPIN Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH Promela and SPIN Promela (Protocol Meta Language): Language for modelling discrete, event-driven

More information

Autolink. A Tool for the Automatic and Semi-Automatic Test Generation

Autolink. A Tool for the Automatic and Semi-Automatic Test Generation Autolink A Tool for the Automatic and Semi-Automatic Test Generation Michael Schmitt, Beat Koch, Jens Grabowski and Dieter Hogrefe University of Lubeck, Institute for Telematics, Ratzeburger Allee 160,

More information

Proc. XVIII Conf. Latinoamericana de Informatica, PANEL'92, pages , August Timed automata have been proposed in [1, 8] to model nite-s

Proc. XVIII Conf. Latinoamericana de Informatica, PANEL'92, pages , August Timed automata have been proposed in [1, 8] to model nite-s Proc. XVIII Conf. Latinoamericana de Informatica, PANEL'92, pages 1243 1250, August 1992 1 Compiling Timed Algebras into Timed Automata Sergio Yovine VERIMAG Centre Equation, 2 Ave de Vignate, 38610 Gieres,

More information

Abstract formula. Net formula

Abstract formula. Net formula { PEP { More than a Petri Net Tool ABSTRACT Bernd Grahlmann and Eike Best The PEP system (Programming Environment based on Petri Nets) supports the most important tasks of a good net tool, including HL

More information

Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab)

Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab) Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab) Richard M. Murray Nok Wongpiromsarn Ufuk Topcu Calornia Institute of Technology AFRL, 25 April 2012 Outline Spin model checker: modeling

More information

INF672 Protocol Safety and Verification. Karthik Bhargavan Xavier Rival Thomas Clausen

INF672 Protocol Safety and Verification. Karthik Bhargavan Xavier Rival Thomas Clausen INF672 Protocol Safety and Verication Karthik Bhargavan Xavier Rival Thomas Clausen 1 Course Outline Lecture 1 [Today, Sep 15] Introduction, Motivating Examples Lectures 2-4 [Sep 22,29, Oct 6] Network

More information

Conditional Branching is not Necessary for Universal Computation in von Neumann Computers Raul Rojas (University of Halle Department of Mathematics an

Conditional Branching is not Necessary for Universal Computation in von Neumann Computers Raul Rojas (University of Halle Department of Mathematics an Conditional Branching is not Necessary for Universal Computation in von Neumann Computers Raul Rojas (University of Halle Department of Mathematics and Computer Science rojas@informatik.uni-halle.de) Abstract:

More information

Server 1 Server 2 CPU. mem I/O. allocate rec n read elem. n*47.0. n*20.0. select. n*1.0. write elem. n*26.5 send. n*

Server 1 Server 2 CPU. mem I/O. allocate rec n read elem. n*47.0. n*20.0. select. n*1.0. write elem. n*26.5 send. n* Information Needs in Performance Analysis of Telecommunication Software a Case Study Vesa Hirvisalo Esko Nuutila Helsinki University of Technology Laboratory of Information Processing Science Otakaari

More information

Introduction to Model Checking

Introduction to Model Checking Introduction to Model Checking René Thiemann Institute of Computer Science University of Innsbruck WS 2007/2008 RT (ICS @ UIBK) week 4 1/23 Outline Promela - Syntax and Intuitive Meaning Promela - Formal

More information

Lecture 3 SPIN and Promela

Lecture 3 SPIN and Promela Lecture 3 SPIN and Promela 1 What is SPIN(Simple Promela INterpreter) A tool for analyzing mels of concurrent systems Mels described in Promela Language with concurrent processes Communication via shared

More information

The SPIN Model Checker

The SPIN Model Checker The SPIN Model Checker Metodi di Verifica del Software Andrea Corradini Lezione 1 2013 Slides liberamente adattate da Logic Model Checking, per gentile concessione di Gerard J. Holzmann http://spinroot.com/spin/doc/course/

More information

Applicant. LLC Service. LAN Segment

Applicant. LLC Service. LAN Segment Verication of Group Address Registration Protocol using PROMELA and SPIN Tadashi Nakatani Fuchu Works, Toshiba Corporation, Japan February 16, 1997 Abstract This paper demonstrates robustness and eectiveness

More information

Tool demonstration: Spin

Tool demonstration: Spin Tool demonstration: Spin 1 Spin Spin is a model checker which implements the LTL model-checking procedure described previously (and much more besides). Developed by Gerard Holzmann of Bell Labs Has won

More information

Network Protocol Design and Evaluation

Network Protocol Design and Evaluation Network Protocol Design and Evaluation 05 - Validation, Part I Stefan Rührup Summer 2009 Overview In the last lectures: Specification of protocols and data/message formats In this chapter: Building a validation

More information

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations.

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations. A Framework for Embedded Real-time System Design? Jin-Young Choi 1, Hee-Hwan Kwak 2, and Insup Lee 2 1 Department of Computer Science and Engineering, Korea Univerity choi@formal.korea.ac.kr 2 Department

More information

SPIN: Part /614 Bug Catching: Automated Program Verification. Sagar Chaki November 12, Carnegie Mellon University

SPIN: Part /614 Bug Catching: Automated Program Verification. Sagar Chaki November 12, Carnegie Mellon University SPIN: Part 1 15-414/614 Bug Catching: Automated Program Verification Sagar Chaki November 12, 2012 What is This All About? Spin On-the-fly verifier developed at Bell-labs by Gerard Holzmann and others

More information

1 INTRODUCTION. Time Oriented Protocol Testing Simulator

1 INTRODUCTION. Time Oriented Protocol Testing Simulator 23 Time Oriented Protocol Testing Simulator Ken Ohta, Nobumasa Nakano, Sanshiro Sakai, Takashi Watanabe and Tadanori Mizuno Department of Computer Science Faculty of Engineering Shizuoka University 3-5-1

More information

residual residual program final result

residual residual program final result C-Mix: Making Easily Maintainable C-Programs run FAST The C-Mix Group, DIKU, University of Copenhagen Abstract C-Mix is a tool based on state-of-the-art technology that solves the dilemma of whether to

More information

1 Introduction. 2 Managing contexts. Green, green threads of home. Johan Montelius HT2018

1 Introduction. 2 Managing contexts. Green, green threads of home. Johan Montelius HT2018 1 Introduction Green, green threads of home Johan Montelius HT2018 This is an assignment where you will implement your own thread library. Instead of using the operating systems threads you will create

More information

Mobile NFS. Fixed NFS. MFS Proxy. Client. Client. Standard NFS Server. Fixed NFS MFS: Proxy. Mobile. Client NFS. Wired Network.

Mobile NFS. Fixed NFS. MFS Proxy. Client. Client. Standard NFS Server. Fixed NFS MFS: Proxy. Mobile. Client NFS. Wired Network. On Building a File System for Mobile Environments Using Generic Services F. Andre M.T. Segarra IRISA Research Institute IRISA Research Institute Campus de Beaulieu Campus de Beaulieu 35042 Rennes Cedex,

More information

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics The Compositional C++ Language Denition Peter Carlin Mani Chandy Carl Kesselman March 12, 1993 Revision 0.95 3/12/93, Comments welcome. Abstract This document gives a concise denition of the syntax and

More information

The Spin Model Checker : Part I/II

The Spin Model Checker : Part I/II The Spin Model Checker : Part I/II Moonzoo Kim CS Dept. KAIST Korea Advanced Institute of Science and Technology Motivation: Tragic Accidents Caused by SW Bugs 2 Cost of Software Errors June 2002 Software

More information

Rance Cleaveland The Concurrency Factory is an integrated toolset for specication, simulation,

Rance Cleaveland The Concurrency Factory is an integrated toolset for specication, simulation, The Concurrency Factory Software Development Environment Rance Cleaveland (rance@csc.ncsu.edu) Philip M. Lewis (pml@cs.sunysb.edu) y Scott A. Smolka (sas@cs.sunysb.edu) y Oleg Sokolsky (oleg@ccc.com) y

More information

Algorithmic "imperative" language

Algorithmic imperative language Algorithmic "imperative" language Undergraduate years Epita November 2014 The aim of this document is to introduce breiy the "imperative algorithmic" language used in the courses and tutorials during the

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

CPSC 320 Sample Solution, Playing with Graphs!

CPSC 320 Sample Solution, Playing with Graphs! CPSC 320 Sample Solution, Playing with Graphs! September 23, 2017 Today we practice reasoning about graphs by playing with two new terms. These terms/concepts are useful in themselves but not tremendously

More information

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations Outline Computer Science 331 Data Structures, Abstract Data Types, and Their Implementations Mike Jacobson 1 Overview 2 ADTs as Interfaces Department of Computer Science University of Calgary Lecture #8

More information

these developments has been in the field of formal methods. Such methods, typically given by a

these developments has been in the field of formal methods. Such methods, typically given by a PCX: A Translation Tool from PROMELA/Spin to the C-Based Stochastic Petri et Language Abstract: Stochastic Petri ets (SPs) are a graphical tool for the formal description of systems with the features of

More information

SCR*: A Toolset for Specifying and. Analyzing Software Requirements? Constance Heitmeyer, James Kirby, Bruce Labaw and Ramesh Bharadwaj

SCR*: A Toolset for Specifying and. Analyzing Software Requirements? Constance Heitmeyer, James Kirby, Bruce Labaw and Ramesh Bharadwaj SCR*: A Toolset for Specifying and Analyzing Software Requirements? Constance Heitmeyer, James Kirby, Bruce Labaw and Ramesh Bharadwaj Naval Research Laboratory, Code 5546, Washington, DC 20375, USA Abstract.

More information

12th European Simulation Multiconference, Manchester, Uk, Discrete Event Simulation in Interactive Scientic and

12th European Simulation Multiconference, Manchester, Uk, Discrete Event Simulation in Interactive Scientic and 12th European Simulation Multiconference, Manchester, Uk, 1998 1 Discrete Event Simulation in Interactive Scientic and Technical Computing Environments T. Pawletta, Wismar University, Germany W. Drewelow,

More information

Natural Semantics [14] within the Centaur system [6], and the Typol formalism [8] which provides us with executable specications. The outcome of such

Natural Semantics [14] within the Centaur system [6], and the Typol formalism [8] which provides us with executable specications. The outcome of such A Formal Executable Semantics for Java Isabelle Attali, Denis Caromel, Marjorie Russo INRIA Sophia Antipolis, CNRS - I3S - Univ. Nice Sophia Antipolis, BP 93, 06902 Sophia Antipolis Cedex - France tel:

More information

PCO ASPs IUT. Tester. ASPs PCO. PDUs. Test System TCP. ASPs PCO. PDUs IUT. Service Provider. Lower Tester Control Function TCP

PCO ASPs IUT. Tester. ASPs PCO. PDUs. Test System TCP. ASPs PCO. PDUs IUT. Service Provider. Lower Tester Control Function TCP Accepted for Computer Networks & ISDN Systems: Special Issue on Protocol Testing TTCN: Towards a Formal Semantics and Validation of Test Suites Finn Kristoersen Thomas Walter y Abstract TTCN (Tree and

More information

Announcement. Exercise #2 will be out today. Due date is next Monday

Announcement. Exercise #2 will be out today. Due date is next Monday Announcement Exercise #2 will be out today Due date is next Monday Major OS Developments 2 Evolution of Operating Systems Generations include: Serial Processing Simple Batch Systems Multiprogrammed Batch

More information

Copyright 2008 CS655 System Modeling and Analysis. Korea Advanced Institute of Science and Technology

Copyright 2008 CS655 System Modeling and Analysis. Korea Advanced Institute of Science and Technology The Spin Model Checker : Part I Copyright 2008 CS655 System Korea Advanced Institute of Science and Technology System Spec. In Promela Req. Spec. In LTL Overview of the Spin Architecture Spin Model pan.c

More information

4/6/2011. Model Checking. Encoding test specifications. Model Checking. Encoding test specifications. Model Checking CS 4271

4/6/2011. Model Checking. Encoding test specifications. Model Checking. Encoding test specifications. Model Checking CS 4271 Mel Checking LTL Property System Mel Mel Checking CS 4271 Mel Checking OR Abhik Roychoudhury http://www.comp.nus.edu.sg/~abhik Yes No, with Counter-example trace 2 Recap: Mel Checking for mel-based testing

More information

Spin: Overview of PROMELA

Spin: Overview of PROMELA Spin: Overview of PROMELA Patrick Trentin patrick.trentin@unitn.it http://disi.unitn.it/~trentin Formal Methods Lab Class, Mar 04, 2016 These slides are derived from those by Stefano Tonetta, Alberto Griggio,

More information

Process Concepts. CSC400 - Operating Systems. 3. Process Concepts. J. Sumey

Process Concepts. CSC400 - Operating Systems. 3. Process Concepts. J. Sumey CSC400 - Operating Systems 3. Process Concepts J. Sumey Overview Concurrency Processes & Process States Process Accounting Interrupts & Interrupt Processing Interprocess Communication CSC400 - Process

More information

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions) By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable

More information

Implementing XNS Protocols for 4.2bsd Introduction We have implemented the Internet Datagram Protocol (IDP) and the Sequenced Packet Protocol (SPP) of

Implementing XNS Protocols for 4.2bsd Introduction We have implemented the Internet Datagram Protocol (IDP) and the Sequenced Packet Protocol (SPP) of Implementing XNS Protocols for 4.2bsd James O'Toole Chris Torek Mark Weiser Department of Computer Science University of Maryland College Park, Maryland

More information

The members of the Committee approve the thesis of Baosheng Cai defended on March David B. Whalley Professor Directing Thesis Xin Yuan Commit

The members of the Committee approve the thesis of Baosheng Cai defended on March David B. Whalley Professor Directing Thesis Xin Yuan Commit THE FLORIDA STATE UNIVERSITY COLLEGE OF ARTS AND SCIENCES COMPILER MODIFICATIONS TO SUPPORT INTERACTIVE COMPILATION By BAOSHENG CAI A Thesis submitted to the Department of Computer Science in partial fulllment

More information

proc {Produce State Out} local State2 Out2 in State2 = State + 1 Out = State Out2 {Produce State2 Out2}

proc {Produce State Out} local State2 Out2 in State2 = State + 1 Out = State Out2 {Produce State2 Out2} Laziness and Declarative Concurrency Raphael Collet Universite Catholique de Louvain, B-1348 Louvain-la-Neuve, Belgium raph@info.ucl.ac.be May 7, 2004 Abstract Concurrency and distribution in a programming

More information

ASPECT GENERATOR. Audit Trail WEAVER. Aspect Editor. Weaving Strategies Editor. Model Editor. Mapping. Instructions. Original Model (XMI)

ASPECT GENERATOR. Audit Trail WEAVER. Aspect Editor. Weaving Strategies Editor. Model Editor. Mapping. Instructions. Original Model (XMI) Tool Support for Aspect-Oriented Design Francois Mekerke 1, Geri Georg 2, Robert France 3, and Roger Alexander 3 1 Ecole Nationale Superieure des Etudes et Techniques d'armement, Brest, France mekerkfr@ensieta.fr

More information

Database Systems Concepts *

Database Systems Concepts * OpenStax-CNX module: m28156 1 Database Systems Concepts * Nguyen Kim Anh This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 Abstract This module introduces

More information

<sig(p)> <task> <sig(p)> <cond> <state> State Symbol Input Symbol Output Symbol. Decision Symbol. Task Symbol

<sig(p)> <task> <sig(p)> <cond> <state> State Symbol Input Symbol Output Symbol. Decision Symbol. Task Symbol A Timed Rewriting Logic Semantics for SDL: A Case Study of the Alternating Bit Protocol L. J. Steggles 1 and P. Kosiuczenko 2. 1 Department of Computer Science, University of Newcastle. email: L.J.Steggles@newcastle.ac.uk

More information

Petri Nets for Modeling and Coordination of Robotic Tasks. Instituto de Sistemas e Robotica, Instituto Superior Tecnico Torre Norte

Petri Nets for Modeling and Coordination of Robotic Tasks. Instituto de Sistemas e Robotica, Instituto Superior Tecnico Torre Norte Petri Nets for Modeling and Coordination of Robotic Tasks Pedro Lima, Hugo Gracio, Vasco Veiga, Anders Karlsson Instituto de Sistemas e Robotica, Instituto Superior Tecnico Torre Norte Av. Rovisco Pais,

More information

Distributed Systems Programming (F21DS1) Formal Verification

Distributed Systems Programming (F21DS1) Formal Verification Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on

More information

CS477 Formal Software Development Methods / 32

CS477 Formal Software Development Methods / 32 CS477 Formal Software Development Methods 2112 SC, UIUC egunter@illinois.edu http://courses.engr.illinois.edu/cs477 SPIN Beginners Tutorial April 13, 2018 Assertion Violation: mutextwrong1.pml bit flag;

More information

Formal Specification and Verification

Formal Specification and Verification Formal Specification and Verification Introduction to Promela Bernhard Beckert Based on a lecture by Wolfgang Ahrendt and Reiner Hähnle at Chalmers University, Göteborg Formal Specification and Verification:

More information

Programming Languages for Real-Time Systems. LS 12, TU Dortmund

Programming Languages for Real-Time Systems. LS 12, TU Dortmund Programming Languages for Real-Time Systems Prof. Dr. Jian-Jia Chen LS 12, TU Dortmund 20 June 2016 Prof. Dr. Jian-Jia Chen (LS 12, TU Dortmund) 1 / 41 References Slides are based on Prof. Wang Yi, Prof.

More information

Spin: Overview of PROMELA

Spin: Overview of PROMELA Spin: Overview of PROMELA Patrick Trentin patrick.trentin@unitn.it http://disi.unitn.it/trentin Formal Methods Lab Class, March 10, 2017 These slides are derived from those by Stefano Tonetta, Alberto

More information

Global Transactions Global Transaction Global Manager Transaction Interface Global Global Scheduler Recovery Manager Global Log Server Log

Global Transactions Global Transaction Global Manager Transaction Interface Global Global Scheduler Recovery Manager Global Log Server Log Recovery in Multidatabase Systems Angelo Brayner Federal University of Ceara brayner@lia.ufc.br Theo Harder University of Kaiserslautern haerder@informatik.uni-kl.de Abstract A multidatabase consists of

More information

Language-Based Parallel Program Interaction: The Breezy Approach. Darryl I. Brown Allen D. Malony. Bernd Mohr. University of Oregon

Language-Based Parallel Program Interaction: The Breezy Approach. Darryl I. Brown Allen D. Malony. Bernd Mohr. University of Oregon Language-Based Parallel Program Interaction: The Breezy Approach Darryl I. Brown Allen D. Malony Bernd Mohr Department of Computer And Information Science University of Oregon Eugene, Oregon 97403 fdarrylb,

More information

Routing and Ad-hoc Retrieval with the. Nikolaus Walczuch, Norbert Fuhr, Michael Pollmann, Birgit Sievers. University of Dortmund, Germany.

Routing and Ad-hoc Retrieval with the. Nikolaus Walczuch, Norbert Fuhr, Michael Pollmann, Birgit Sievers. University of Dortmund, Germany. Routing and Ad-hoc Retrieval with the TREC-3 Collection in a Distributed Loosely Federated Environment Nikolaus Walczuch, Norbert Fuhr, Michael Pollmann, Birgit Sievers University of Dortmund, Germany

More information

Meta-Model Guided Error Correction for UML Models

Meta-Model Guided Error Correction for UML Models Final Thesis Meta-Model Guided Error Correction for UML Models by Fredrik Bäckström and Anders Ivarsson LITH-IDA-EX--06/079--SE 2006-12-13 Final Thesis Meta-Model Guided Error Correction for UML Models

More information

The SPIN Model Checker

The SPIN Model Checker The SPIN Model Checker Metodi di Verifica del Software Andrea Corradini GianLuigi Ferrari Lezione 3 2011 Slides per gentile concessione di Gerard J. Holzmann 2 the do-statement do :: guard 1 -> stmnt 1.1

More information

LTL Reasoning: How It Works

LTL Reasoning: How It Works Distributed Systems rogramming F21DS1 LTL Reasoning: How It Works Andrew Ireland School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Distributed Systems rogramming F21DS1 2 Overview

More information

A Practical approach on Model checking with Modex and Spin

A Practical approach on Model checking with Modex and Spin International Journal of Electrical & Computer Sciences IJECS-IJENS Vol: 11 No: 05 1 A Practical approach on Model checking with Modex and Spin Muhammad Iqbal Hossain #1, Nahida Sultana Chowdhury *2 #

More information

The Spin Model Checker : Part I. Moonzoo Kim KAIST

The Spin Model Checker : Part I. Moonzoo Kim KAIST The Spin Model Checker : Part I Moonzoo Kim KAIST Hierarchy of SW Coverage Criteria Complete Value Coverage CVC (SW) Model checking Complete Path Coverage CPC Concolic testing All-DU-Paths Coverage ADUP

More information

The Global Standard for Mobility (GSM) (see, e.g., [6], [4], [5]) yields a

The Global Standard for Mobility (GSM) (see, e.g., [6], [4], [5]) yields a Preprint 0 (2000)?{? 1 Approximation of a direction of N d in bounded coordinates Jean-Christophe Novelli a Gilles Schaeer b Florent Hivert a a Universite Paris 7 { LIAFA 2, place Jussieu - 75251 Paris

More information

TOWARDS A VERIFIED CARDIAC PACEMAKER. Asankhaya Sharma

TOWARDS A VERIFIED CARDIAC PACEMAKER. Asankhaya Sharma TOWARS A VERIFIE CARIAC PACEMAKER Asankhaya Sharma asankhaya@nus.edu.sg Technical Report November 2010 TOWARS A VERIFIE CARIAC PACEMAKER Abstract In this report we describe our attempt to solve the pacemaker

More information

Exam TI2720-C/TI2725-C Embedded Software

Exam TI2720-C/TI2725-C Embedded Software Exam TI2720-C/TI2725-C Embedded Software Wednesday April 16 2014 (18.30-21.30) Koen Langendoen In order to avoid misunderstanding on the syntactical correctness of code fragments in this examination, we

More information

Using semantic causality graphs to validate MAS models

Using semantic causality graphs to validate MAS models Using semantic causality graphs to validate MAS models Guillermo Vigueras 1, Jorge J. Gómez 2, Juan A. Botía 1 and Juan Pavón 2 1 Facultad de Informática Universidad de Murcia Spain 2 Facultad de Informática

More information

To appear in: IEEE Transactions on Knowledge and Data Engineering. The Starburst Active Database Rule System. Jennifer Widom. Stanford University

To appear in: IEEE Transactions on Knowledge and Data Engineering. The Starburst Active Database Rule System. Jennifer Widom. Stanford University To appear in: IEEE Transactions on Knowledge and Data Engineering The Starburst Active Database Rule System Jennifer Widom Department of Computer Science Stanford University Stanford, CA 94305-2140 widom@cs.stanford.edu

More information

Applications of Formal Verification

Applications of Formal Verification Applications of Formal Verification Model Checking: Introduction to PROMELA Bernhard Beckert Mattias Ulbrich SS 2017 KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg

More information

Buffer_1 Machine_1 Buffer_2 Machine_2. Arrival. Served

Buffer_1 Machine_1 Buffer_2 Machine_2. Arrival. Served Modeling and Performance Evaluation of Production Lines Using the Modeling Language MOSEL G. Bolch, S. Greiner IMMD IV { University Erlangen-Nuremberg Martensstrae 1, D { 91058 Erlangen, Germany E-mail:

More information

diasem_r(1) unfold_l(3) N12 N13 unfold_l(3) N14 unfold_l(1) N16 N10 N17

diasem_r(1) unfold_l(3) N12 N13 unfold_l(3) N14 unfold_l(1) N16 N10 N17 Tool Description for ETAPS'01/TACAS: The EVT Erlang Verication Tool Thomas Noll 1, Lars{ake Fredlund 2, and Dilian Gurov 2 1 Department of Teleinformatics, Royal Institute of Technology (KTH), Stockholm,

More information

Research on outlier intrusion detection technologybased on data mining

Research on outlier intrusion detection technologybased on data mining Acta Technica 62 (2017), No. 4A, 635640 c 2017 Institute of Thermomechanics CAS, v.v.i. Research on outlier intrusion detection technologybased on data mining Liang zhu 1, 2 Abstract. With the rapid development

More information

Distributed Systems Programming (F21DS1) SPIN: Simple Promela INterpreter

Distributed Systems Programming (F21DS1) SPIN: Simple Promela INterpreter Distributed Systems Programming (F21DS1) SPIN: Simple Promela INterpreter Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview

More information

Applications of Formal Verification

Applications of Formal Verification Applications of Formal Verification Model Checking: Introduction to PROMELA Prof. Dr. Bernhard Beckert Dr. Vladimir Klebanov SS 2012 KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State

More information

City Research Online. Permanent City Research Online URL:

City Research Online. Permanent City Research Online URL: Kloukinas, C., Saridakis, T. & Issarny, V. (1999). Fault Tolerant Access to Dynamically Located Services for CORBA Applications. Paper presented at the Computer Applications in Industry and Engineering

More information

Lecture 2: Intro to Concurrent Processing. A Model of Concurrent Programming

Lecture 2: Intro to Concurrent Processing. A Model of Concurrent Programming Lecture 2: Intro to Concurrent Processing The SR Language. Correctness and Concurrency. Mutual Exclusion & Critical Sections. Software Solutions to Mutual Exclusion. Dekker s Algorithm. The Bakery Algorithm.

More information

In Section 2, we investigate the main run-time cost factors for Estelle and fathom the potential for improvements. Currently, existing compilers are r

In Section 2, we investigate the main run-time cost factors for Estelle and fathom the potential for improvements. Currently, existing compilers are r Specication Style and Eciency in Estelle Jan Bredereke McMaster University, CAS 1280 Main Street West Hamilton, Ontario L8S 4K1 Canada jan.bredereke@topmail.de http://www.poboxes.com/jan.bredereke Abstract.

More information

PROJECTION MODELING SIMPLIFICATION MARKER EXTRACTION DECISION. Image #k Partition #k

PROJECTION MODELING SIMPLIFICATION MARKER EXTRACTION DECISION. Image #k Partition #k TEMPORAL STABILITY IN SEQUENCE SEGMENTATION USING THE WATERSHED ALGORITHM FERRAN MARQU ES Dept. of Signal Theory and Communications Universitat Politecnica de Catalunya Campus Nord - Modulo D5 C/ Gran

More information

Henning Koch. Dept. of Computer Science. University of Darmstadt. Alexanderstr. 10. D Darmstadt. Germany. Keywords:

Henning Koch. Dept. of Computer Science. University of Darmstadt. Alexanderstr. 10. D Darmstadt. Germany. Keywords: Embedding Protocols for Scalable Replication Management 1 Henning Koch Dept. of Computer Science University of Darmstadt Alexanderstr. 10 D-64283 Darmstadt Germany koch@isa.informatik.th-darmstadt.de Keywords:

More information

Evolution of Real-Time TTCN Testing based on Prioritised Scheduling

Evolution of Real-Time TTCN Testing based on Prioritised Scheduling Evolution of Real-Time TTCN Testing based on Prioritised Scheduling CKavadias*, ALitke*, GThanos*, VKollias* and WSkelton** *TELETEL SA; 124, Kifisias Avenue, Athens, GREECE Tel: + 30 1 6983393; Fax: +30

More information

Operating Systems Overview. Chapter 2

Operating Systems Overview. Chapter 2 Operating Systems Overview Chapter 2 Operating System A program that controls the execution of application programs An interface between the user and hardware Masks the details of the hardware Layers and

More information

les are not generally available by NFS or AFS, with a mechanism called \remote system calls". These are discussed in section 4.1. Our general method f

les are not generally available by NFS or AFS, with a mechanism called \remote system calls. These are discussed in section 4.1. Our general method f Checkpoint and Migration of UNIX Processes in the Condor Distributed Processing System Michael Litzkow, Todd Tannenbaum, Jim Basney, and Miron Livny Computer Sciences Department University of Wisconsin-Madison

More information

Design of Internet Protocols:

Design of Internet Protocols: CSCI 234 Design of Internet Protocols: George Blankenship George Blankenship 1 Outline Verication and Validation History and motivation Spin Promela language Promela model George Blankenship 2 Verication

More information

Real-Time Scalability of Nested Spin Locks. Hiroaki Takada and Ken Sakamura. Faculty of Science, University of Tokyo

Real-Time Scalability of Nested Spin Locks. Hiroaki Takada and Ken Sakamura. Faculty of Science, University of Tokyo Real-Time Scalability of Nested Spin Locks Hiroaki Takada and Ken Sakamura Department of Information Science, Faculty of Science, University of Tokyo 7-3-1, Hongo, Bunkyo-ku, Tokyo 113, Japan Abstract

More information

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

director executor user program user program signal, breakpoint function call communication channel client library directing server

director executor user program user program signal, breakpoint function call communication channel client library directing server (appeared in Computing Systems, Vol. 8, 2, pp.107-134, MIT Press, Spring 1995.) The Dynascope Directing Server: Design and Implementation 1 Rok Sosic School of Computing and Information Technology Grith

More information

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 CME 305: Discrete Mathematics and Algorithms Instructor: Professor Aaron Sidford (sidford@stanford.edu) January 11, 2018 Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 In this lecture

More information

A Simple Example. The Synchronous Language Esterel. A First Try: An FSM. The Esterel Version. The Esterel Version. The Esterel Version

A Simple Example. The Synchronous Language Esterel. A First Try: An FSM. The Esterel Version. The Esterel Version. The Esterel Version The Synchronous Language Prof. Stephen. Edwards Simple Example The specification: The output O should occur when inputs and have both arrived. The R input should restart this behavior. First Try: n FSM

More information

Technische Universitat Munchen. Institut fur Informatik. D Munchen.

Technische Universitat Munchen. Institut fur Informatik. D Munchen. Developing Applications for Multicomputer Systems on Workstation Clusters Georg Stellner, Arndt Bode, Stefan Lamberts and Thomas Ludwig? Technische Universitat Munchen Institut fur Informatik Lehrstuhl

More information

Hs01006: Language Features, Arithmetic Operators *

Hs01006: Language Features, Arithmetic Operators * OpenStax-CNX module: m37146 1 Hs01006: Language Features, Arithmetic Operators * R.G. (Dick) Baldwin This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 4.0

More information

Network. Department of Statistics. University of California, Berkeley. January, Abstract

Network. Department of Statistics. University of California, Berkeley. January, Abstract Parallelizing CART Using a Workstation Network Phil Spector Leo Breiman Department of Statistics University of California, Berkeley January, 1995 Abstract The CART (Classication and Regression Trees) program,

More information

DESIGN AND VALIDATION OF COMPUTER PROTOCOLS

DESIGN AND VALIDATION OF COMPUTER PROTOCOLS DESIGN AND VALIDATION OF COMPUTER PROTOCOLS Gerard J. Holzmann Bell Laboratories Murray Hill, New Jersey 07974 PRENTICE-HALL Englewood Cliffs, New Jersey 07632 Prentice Hall Software Series Brian W. Kernighan,

More information

PPS : A Pipeline Path-based Scheduler. 46, Avenue Felix Viallet, Grenoble Cedex, France.

PPS : A Pipeline Path-based Scheduler. 46, Avenue Felix Viallet, Grenoble Cedex, France. : A Pipeline Path-based Scheduler Maher Rahmouni Ahmed A. Jerraya Laboratoire TIMA/lNPG,, Avenue Felix Viallet, 80 Grenoble Cedex, France Email:rahmouni@verdon.imag.fr Abstract This paper presents a scheduling

More information

Verification of Web Service Flows with Model-Checking Techniques

Verification of Web Service Flows with Model-Checking Techniques Verification of Web Service Flows with Model-Checking Techniques Shin NAKAJIMA Hosei University and PRESTO, JST nkjm@i.hosei.ac.jp Abstract UDDI register Web service is an emerging software technology

More information

Dynamic load balancing of SCSI WRITE and WRITE SAME commands

Dynamic load balancing of SCSI WRITE and WRITE SAME commands Dynamic load balancing of SCSI WRITE and WRITE SAME commands Vladimir Tikhomirov Supervised by Dr. Simo Juvaste Advised by Antti Vikman and Timo Turunen Master's thesis. June 13, 2013 School of Computing

More information

Applications of Formal Verification

Applications of Formal Verification Applications of Formal Verification Model Checking: Introduction to PROMELA Prof. Dr. Bernhard Beckert Dr. Vladimir Klebanov SS 2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State

More information

PARIS - Partitioned Ada for Remotely Invoked. Services. 46, Rue Barrault. March 21, 1995.

PARIS - Partitioned Ada for Remotely Invoked. Services. 46, Rue Barrault. March 21, 1995. PARIS - Partitioned Ada for Remotely Invoked Services Anthony Gargaro Software Engineering Institute Carnegie Mellon University 4500 Fifth Avenue Pittsburgh, PA 15213-3890 USA abg@sei.cmu.edu Laurent Pautet

More information

Computer Aided Verification 2015 The SPIN model checker

Computer Aided Verification 2015 The SPIN model checker Computer Aided Verification 2015 The SPIN model checker Grigory Fedyukovich Universita della Svizzera Italiana March 11, 2015 Material borrowed from Roberto Bruttomesso Outline 1 Introduction 2 PROcess

More information

Improving the Quality of Test Suites for Conformance. Tests by Using Message Sequence Charts. Abstract

Improving the Quality of Test Suites for Conformance. Tests by Using Message Sequence Charts. Abstract 1 Improving the Quality of Test Suites for Conformance Tests by Using Message Sequence Charts Jens Grabowski a ; Dieter Hogrefe a, Iwan Nussbaumer b, and Andreas Spichiger a Abstract The test of a communication

More information

Activity Report at SYSTRAN S.A.

Activity Report at SYSTRAN S.A. Activity Report at SYSTRAN S.A. Pierre Senellart September 2003 September 2004 1 Introduction I present here work I have done as a software engineer with SYSTRAN. SYSTRAN is a leading company in machine

More information

Optimum Alphabetic Binary Trees T. C. Hu and J. D. Morgenthaler Department of Computer Science and Engineering, School of Engineering, University of C

Optimum Alphabetic Binary Trees T. C. Hu and J. D. Morgenthaler Department of Computer Science and Engineering, School of Engineering, University of C Optimum Alphabetic Binary Trees T. C. Hu and J. D. Morgenthaler Department of Computer Science and Engineering, School of Engineering, University of California, San Diego CA 92093{0114, USA Abstract. We

More information

FORMAL METHODS IN NETWORKING COMPUTER SCIENCE 598D, SPRING 2010 PRINCETON UNIVERSITY LIGHTWEIGHT MODELING IN PROMELA/SPIN AND ALLOY

FORMAL METHODS IN NETWORKING COMPUTER SCIENCE 598D, SPRING 2010 PRINCETON UNIVERSITY LIGHTWEIGHT MODELING IN PROMELA/SPIN AND ALLOY FORMAL METHODS IN NETWORKING COMPUTER SCIENCE 598D, SPRING 2010 PRINCETON UNIVERSITY LIGHTWEIGHT MODELING IN PROMELA/SPIN AND ALLOY Pamela Zave AT&T Laboratories Research Florham Park, New Jersey, USA

More information