Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Understanding Concurrent SystemsOctober 2010
Publisher:
  • Springer-Verlag
  • Berlin, Heidelberg
ISBN:978-1-84882-257-3
Published:25 October 2010
Pages:
533
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

CSP notation has been used extensively for teaching and applying concurrency theory, ever since the publication of the text Communicating Sequential Processes by C.A.R. Hoare in 1985. Both a programming language and a specification language, the theory of CSP helps users to understand concurrent systems, and to decide whether a program meets its specification. As a member of the family of process algebras, the concepts of communication and interaction are presented in an algebraic style. An invaluable reference on the state of the art in CSP, Understanding Concurrent Systems also serves as a comprehensive introduction to the field, in addition to providing material for a number of more advanced courses. A first point of reference for anyone wanting to use CSP or learn about its theory, the book also introduces other views of concurrency, using CSP to model and explain these. The text is fully integrated with CSP-based tools such as FDR, and describes how to create new tools based on FDR. Most of the book relies on no theoretical background other than a basic knowledge of sets and sequences. Sophisticated mathematical arguments are avoided whenever possible. Topics and features: presents a comprehensive introduction to CSP; discusses the latest advances in CSP, covering topics of operational semantics, denotational models, finite observation models and infinite-behaviour models, and algebraic semantics; explores the practical application of CSP, including timed modelling, discrete modelling, parameterised verifications and the state explosion problem, and advanced topics in the use of FDR; examines the ability of CSP to describe and enable reasoning about parallel systems modelled in other paradigms; covers a broad variety of concurrent systems, including combinatorial, timed, priority-based, mobile, shared variable, statecharts, buffered and asynchronous systems; contains exercises and case studies to support the text; supplies further tools and information at the associated website: http://www.comlab.ox.ac.uk/ucs/. From undergraduate students of computer science in need of an introduction to the area, to researchers and practitioners desiring a more in-depth understanding of theory and practice of concurrent systems, this broad-ranging text/reference is essential reading for anyone interested in Hoares CSP.

Cited By

  1. ACM
    Baxter J, Carvalho G, Cavalcanti A and Júnior F (2023). RoboWorld: Verification of Robotic Systems with Environment in the Loop, Formal Aspects of Computing, 35:4, (1-46), Online publication date: 31-Dec-2024.
  2. ACM
    Du D, Cavalcanti A and Nie J RoboSimVer: A Tool for RoboSim Modeling and Analysis Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering, (1-4)
  3. Murray Y, Sirevåg M, Ribeiro P, Anisi D and Mossige M (2022). Safety assurance of an industrial robotic control system using hardware/software co-verification, Science of Computer Programming, 216:C, Online publication date: 1-Apr-2022.
  4. ACM
    Cavalcanti A, Hierons R and Nogueira S (2020). Inputs and Outputs in CSP, ACM Transactions on Computational Logic, 21:3, (1-53), Online publication date: 22-May-2020.
  5. Durier A, Hirschkoff D and Sangiorgi D (2020). Towards ‘up to context’ reasoning about higher-order processes, Theoretical Computer Science, 807:C, (154-168), Online publication date: 6-Feb-2020.
  6. Miyazawa A, Ribeiro P, Li W, Cavalcanti A, Timmis J and Woodcock J (2019). RoboChart, Software and Systems Modeling (SoSyM), 18:5, (3097-3149), Online publication date: 1-Oct-2019.
  7. Gibson-Robinson T and Lowe G (2019). Symmetry reduction in CSP model checking, International Journal on Software Tools for Technology Transfer (STTT), 21:5, (567-605), Online publication date: 1-Oct-2019.
  8. ACM
    Antonino P, Gibson-Robinson T and Roscoe A (2019). Efficient Verification of Concurrent Systems Using Synchronisation Analysis and SAT/SMT Solving, ACM Transactions on Software Engineering and Methodology, 28:3, (1-43), Online publication date: 17-Aug-2019.
  9. Peleska J, Huang W and Cavalcanti A (2019). Finite complete suites for CSP refinement testing, Science of Computer Programming, 179:C, (1-23), Online publication date: 15-Jun-2019.
  10. Cavalcanti A and Simao A (2019). Fault-based refinement-testing for CSP, Software Quality Journal, 27:2, (529-562), Online publication date: 1-Jun-2019.
  11. Debreceni C, Bergmann G, Ráth I and Varró D (2019). Enforcing fine-grained access control for secure collaborative modelling using bidirectional transformations, Software and Systems Modeling (SoSyM), 18:3, (1737-1769), Online publication date: 1-Jun-2019.
  12. Reisig W (2019). Associative composition of components with double-sided interfaces, Acta Informatica, 56:3, (229-253), Online publication date: 1-Apr-2019.
  13. Xiang S, Wu X, Zhu H, Xie W, Xiao L and Vinh P (2019). Modeling and Verifying Basic Modules of Floodlight, Mobile Networks and Applications, 24:1, (100-114), Online publication date: 15-Feb-2019.
  14. Valmari A and Vogler W (2018). Fair testing and stubborn sets, International Journal on Software Tools for Technology Transfer (STTT), 20:5, (589-610), Online publication date: 1-Oct-2018.
  15. Huang W and Peleska J (2018). Model-based testing strategies and their (in)dependence on syntactic model representations, International Journal on Software Tools for Technology Transfer (STTT), 20:4, (441-465), Online publication date: 1-Aug-2018.
  16. ACM
    Foughali M, Berthomieu B, Zilio S, Hladik P, Ingrand F and Mallet A Formal verification of complex robotic systems on resource-constrained platforms Proceedings of the 6th Conference on Formal Methods in Software Engineering, (2-9)
  17. ACM
    Mislove M (2018). Semantics column, ACM SIGLOG News, 5:2, (17-19), Online publication date: 30-Apr-2018.
  18. van den Berghe A, Yskout K, Joosen W and Scandariato R A model for provably secure software design Proceedings of the 5th International FME Workshop on Formal Methods in Software Engineering, (3-9)
  19. Antonino P, Gibson-Robinson T and Roscoe A The Automatic Detection of Token Structures and Invariants Using SAT Checking Proceedings, Part II, of the 23rd International Conference on Tools and Algorithms for the Construction and Analysis of Systems - Volume 10206, (249-265)
  20. ACM
    Valmari A (2017). Stop It, and Be Stubborn!, ACM Transactions on Embedded Computing Systems, 16:2, (1-26), Online publication date: 14-Apr-2017.
  21. Xie W, Zhu H, Wu X, Xiang S, Guo J and Vinh P (2017). Modeling and Verifying HDFS Using Process Algebra, Mobile Networks and Applications, 22:2, (318-331), Online publication date: 1-Apr-2017.
  22. Ye K and Woodcock J (2017). Model checking of state-rich formalism [InlineEquation not available, International Journal on Software Tools for Technology Transfer (STTT), 19:1, (73-96), Online publication date: 1-Feb-2017.
  23. ACM
    Sangiorgi D (2017). Equations, Contractions, and Unique Solutions, ACM Transactions on Computational Logic, 18:1, (1-30), Online publication date: 31-Jan-2017.
  24. ACM
    Narayanaswamy G, Joshi S and Kroening D (2016). The virtues of conflict, ACM SIGPLAN Notices, 51:8, (1-12), Online publication date: 9-Nov-2016.
  25. Oliveira M, Antonino P, Ramos R, Sampaio A, Mota A and Roscoe A (2016). Rigorous development of component-based systems using component metadata and patterns, Formal Aspects of Computing, 28:6, (937-1004), Online publication date: 1-Nov-2016.
  26. Claude G, Gouranton V, Caillaud B, Gibaud B, Jannin P and Arnaldi B From observations to collaborative simulation Proceedings of the 26th International Conference on Artificial Reality and Telexistence and the 21st Eurographics Symposium on Virtual Environments, (85-92)
  27. Stathakidis E, Williams D and Heather J (2016). Constructing and verifying a robust Mix Net using CSP, Software and Systems Modeling (SoSyM), 15:4, (1063-1089), Online publication date: 1-Oct-2016.
  28. Moran M, Heather J and Schneider S (2016). Automated anonymity verification of the ThreeBallot and VAV voting systems, Software and Systems Modeling (SoSyM), 15:4, (1049-1062), Online publication date: 1-Oct-2016.
  29. Freitas L, Baxter J, Cavalcanti A and Wellings A Modelling and Verifying a Priority Scheduler for an SCJ Runtime Environment Proceedings of the 12th International Conference on Integrated Formal Methods - Volume 9681, (63-78)
  30. Antonino P, Gibson-Robinson T and Roscoe A Efficient Deadlock-Freedom Checking Using Local Analysis and SAT Solving Proceedings of the 12th International Conference on Integrated Formal Methods - Volume 9681, (345-360)
  31. Lowe G (2016). Concurrent depth-first search algorithms based on Tarjan's Algorithm, International Journal on Software Tools for Technology Transfer (STTT), 18:2, (129-147), Online publication date: 1-Apr-2016.
  32. Gibson-Robinson T, Armstrong P, Boulgakov A and Roscoe A (2016). FDR3, International Journal on Software Tools for Technology Transfer (STTT), 18:2, (149-167), Online publication date: 1-Apr-2016.
  33. ACM
    Narayanaswamy G, Joshi S and Kroening D The virtues of conflict Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (1-12)
  34. Roscoe A (2015). The Expressiveness of CSP With Priority, Electronic Notes in Theoretical Computer Science (ENTCS), 319:C, (387-401), Online publication date: 21-Dec-2015.
  35. ACM
    Siirtola A and Heljanko K (2015). Parametrised Modal Interface Automata, ACM Transactions on Embedded Computing Systems, 14:4, (1-25), Online publication date: 8-Dec-2015.
  36. ACM
    Nielsen C, Larsen P, Fitzgerald J, Woodcock J and Peleska J (2015). Systems of Systems Engineering, ACM Computing Surveys, 48:2, (1-41), Online publication date: 21-Nov-2015.
  37. Sangiorgi D The Proof Technique of Unique Solutions of Contractions Proceedings of the 12th International Colloquium on Theoretical Aspects of Computing - ICTAC 2015 - Volume 9399, (63-68)
  38. Cavalcanti A, Huang W, Peleska J and Woodcock J CSP and Kripke Structures Proceedings of the 12th International Colloquium on Theoretical Aspects of Computing - ICTAC 2015 - Volume 9399, (505-523)
  39. ACM
    Baxter J, Cavalcanti A, Wellings A and Freitas L Safety-Critical Java Virtual Machine Services Proceedings of the 13th International Workshop on Java Technologies for Real-time and Embedded Systems, (1-10)
  40. ACM
    Al-Humaimeedy A and Fernández M Enhancing the specification and verification techniques of multiparty sessions in SOC Proceedings of the 17th International Symposium on Principles and Practice of Declarative Programming, (19-30)
  41. ACM
    Narayanaswamy G When truth is efficient: analysing concurrency Proceedings of the 2015 International Symposium on Software Testing and Analysis, (141-152)
  42. Simpson A, Martin A, Cremers C, Flechais I, Martinovic I and Rasmussen K Experiences in developing and delivering a programme of part-time education in software and systems security Proceedings of the 37th International Conference on Software Engineering - Volume 2, (435-444)
  43. ACM
    Sangiorgi D (2015). Equations, Contractions, and Unique Solutions, ACM SIGPLAN Notices, 50:1, (421-432), Online publication date: 11-May-2015.
  44. ACM
    Hense A CSPm models for the ATM case study Proceedings of the 7th International Conference on Subject-Oriented Business Process Management, (1-7)
  45. Valmari A (2015). On constructibility and unconstructibility of LTS operators from other LTS operators, Acta Informatica, 52:2-3, (207-234), Online publication date: 1-Apr-2015.
  46. ACM
    Sangiorgi D Equations, Contractions, and Unique Solutions Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (421-432)
  47. Zhu M, Grogono P and Ormandjieva O (2015). Using Category Theory to Verify Implementation Against Design in Concurrent Systems, Procedia Computer Science, 52:C, (530-537), Online publication date: 1-Jan-2015.
  48. Antonino P, Sampaio A and Woodcock J A Refinement Based Strategy for Local Deadlock Analysis of Networks of CSP Processes Proceedings of the 19th International Symposium on FM 2014: Formal Methods - Volume 8442, (62-77)
  49. Woodcock J Engineering UToPiA Proceedings of the 19th International Symposium on FM 2014: Formal Methods - Volume 8442, (22-41)
  50. Antonino P, Oliveira M, Sampaio A, Kristensen K and Bryans J Leadership Election Proceedings of the 6th International Symposium on NASA Formal Methods - Volume 8430, (31-45)
  51. Song W, Liu Y and Li J (2014). Mining high utility itemsets by dynamically pruning the tree structure, Applied Intelligence, 40:1, (29-43), Online publication date: 1-Jan-2014.
  52. Moran M, Heather J and Schneider S (2014). Verifying anonymity in voting systems using CSP, Formal Aspects of Computing, 26:1, (63-98), Online publication date: 1-Jan-2014.
  53. Cavalcanti A and Hierons R Testing with inputs and outputs in CSP Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering, (359-374)
  54. Roscoe A and Hopcroft P Slow abstraction via priority Theories of Programming and Formal Methods, (326-345)
  55. Shi L, Liu Y, Sun J, Dong J and Carvalho G An analytical and experimental comparison of CSP extensions and tools Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering, (381-397)
  56. Abdelhalim I, Schneider S and Treharne H An optimization approach for effective formalized fUML model checking Proceedings of the 10th international conference on Software Engineering and Formal Methods, (248-262)
  57. Williams D, de Ruiter J and Fokkink W Model checking under fairness in proB and its application to fair exchange protocols Proceedings of the 9th international conference on Theoretical Aspects of Computing, (168-182)
  58. Valmari A All linear-time congruences for familiar operators part 2 Proceedings of the 23rd international conference on Concurrency Theory, (162-176)
  59. Armstrong P, Goldsmith M, Lowe G, Ouaknine J, Palikareva H, Roscoe A and Worrell J Recent developments in FDR Proceedings of the 24th international conference on Computer Aided Verification, (699-704)
  60. Isobe Y, Moller F, Nguyen H and Roggenbach M Safety and line capacity in railways --- an approach in timed CSP Proceedings of the 9th international conference on Integrated Formal Methods, (54-68)
  61. Hooman J, Mooij A and van Wezep H Early fault detection in industry using models at various abstraction levels Proceedings of the 9th international conference on Integrated Formal Methods, (268-282)
  62. Ouaknine J, Palikareva H, Roscoe A and Worrell J Static livelock analysis in CSP Proceedings of the 22nd international conference on Concurrency theory, (389-403)
  63. O'Reilly L, Mossakowski T and Roggenbach M Compositional modelling and reasoning in an institution for processes and data Proceedings of the 20th international conference on Recent Trends in Algebraic Development Techniques, (251-269)
  64. Roscoe A, Armstrong P and Pragyesh Local Search in Model Checking Automated Technology for Verification and Analysis, (22-38)
  65. ACM
    Fei Y, Zhu H and Yin J FVF-AKA: A Formal Verification Framework of AKA Protocols for Multi-server IoT, Formal Aspects of Computing, 0:0
Contributors
  • University of Oxford

Reviews

MohammadReza Mousavi

The design of concurrent and distributed systems has been a challenging task since the early ages of computing. This challenging task has gained increasing importance due to the ubiquity of concurrent and distributed systems, ranging from systems and networks on a single chip, to distributed embedded systems, to the Internet. Process algebras have been proposed since more than three decades ago to respond to this challenge, thanks to the pioneering work of people like Tony Hoare and the late Robin Milner. This book is about modeling, verifying, and programming concurrent systems using the communicating sequential processes (CSP) methodology pioneered by Hoare. CSP is more than a plain formalism; it comes equipped with a rich background of design principles, verification methods, and programming paradigms. Most, if not all, of these aspects are covered in the four parts of the book. Part 1, which includes chapters 1 to 8, provides an easygoing introduction to the language of CSP by discussing its operators and specifying several examples in its syntax. The examples range from classical examples, such as dining philosophers and alternating bit protocol, to more creative and fun examples, such as sudoku and road-traffic control. This section also offers a flavor of different semantic models of CSP so that the reader can gain an intuitive idea about the verification methods that rely on the semantic models. This part concludes with an introduction to the possibilities provided by the verification toolset for failure-divergence refinement (FDR). Part 2, which includes chapters 9 to 13, spells out the underlying theory of CSP. First, the operational semantics of the language are presented in both the structural operational semantics (SOS) style of Plotkin, as well as a "combinator" style of semantics (a textual coding of de Simone rules in the SOS style). It is shown that if termination is set aside, any operator with the combinator style of semantics can be defined using a CSP expression (up to strong bisimilarity). Different semantic models for CSP are defined formally in subsequent sections, and finally the algebra of CSP is presented. Part 3, which includes chapters 14 to 17, is dedicated to various application areas for CSP. It is shown that CSP can be used to model discrete-time systems; this is achieved by designating a certain action called "tock" (for the tick of a clock) in the specification. This section also explains the verification possibilities in FDR, the semantic properties of tock-CSP, and its relationship to continuous-timed extensions of CSP. The subsequent chapter presents verification techniques for dealing with large, infinite, and parameterized systems. In Part 4, it is first shown that the shared-variable model of concurrency can be given a CSP semantics. This section then presents a corresponding tool for analyzing shared-variable concurrent programs. The final chapter in this part deals with priority (particularly in the semantics of statecharts) and mobility. The book covers a very wide range of topics, which are not all equally easy to grasp for a graduate student of computer science. Hence, a careful selection of topics in this book should be made for a graduate course; even in that case, using some more reading material may help. Fortunately, the book does provide a few alternative selections and comes with a Web site (http://www.comlab.ox.ac.uk/ucs/) that contains several pointers to the older textbooks and papers cited in the book. For many years, Roscoe's book [1] served as the major reference for learning and teaching CSP. I believe this book will serve as its extended, updated, and improved successor for many years to come. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations