Structuring distributed programs with control fault detection

  • Michiharu Tsukamoto
Part V, Distributed Operating Systems
Part of the Lecture Notes in Computer Science book series (LNCS, volume 143)


This paper introduces a language concept, guarding processes, as a method of structuring concurrent programs in distributed computing systems without a common memory. In the concept a program consists of modules each of which defines objects and servers with multi-processes The concept is based on two types of path expression. One type is used to achieve synchronization, mutual exclusion, and autonomous resource access in the module. The other type is used to specify interactions and to detect impermissible sequences of communication between modules. The paper gives some examples of this new concept and demonstrates its potential.

Index terms

communication concurrent programming control fault detection distributed computation distributed programming error detection master and slave module mutual-checking object path expression reliable software 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Andler, S. (1979). Predicate Path Expression: A High-Level Synchronization Mechanism. CMU-CS-79-134, Depart. of Comput. Science Carnegie-Mellon Univ.Google Scholar
  2. Brinch Hansen, P. (1978). Distributed Processes: A Concurrent Programming Concept. Comm. ACM, Vol 21, No. 11, pp 934–941.Google Scholar
  3. Campbell, R.H. and Habermann, A.N. (1974). The specification of Process Synchronization by Path Expressions. LNCS, Vol 16, pp 89–102.Google Scholar
  4. Feldman, J.A. (1979). High Level Programming for Distributed Computing. Comm. ACM, Vol 22, No 6, pp 353–368.Google Scholar
  5. Hoare C.A.R. (1978). Communicating Sequential Processes. Comm. ACM, Vol 21, No 8, pp 666–677.Google Scholar
  6. Ichbiah J.D. et al. (1979). Preliminary ADA Reference Manual. ACM SIGPLAN Notices, Vol 14, No 6, Part A.Google Scholar
  7. Jensen, E.D. (1978). The Honeywell Experimental Distributed Processor — An overview. IEEE Computer, Vol 11, No 1, pp 28–39.Google Scholar
  8. Kane J.R., and Yau S.S. (1975). Concurrent Software Fault Detection. Trans. on Software Engineering, Vol SE-1, No 1, pp 87–99.Google Scholar
  9. Kawai, H. (1981). High-Level Protocols in Heterogeneous Computer Networks. Res. of ETL, No 817, Electrotechnical Lab.Google Scholar
  10. Kim K.H. (1979). Error Detection, Reconfiguration and Recovery in Distributed Processing Systems. Proc. IEEE Distributed Computing Systems, Huntsville, pp 271–295.Google Scholar
  11. Lauer, P.E. and Campbell, R.H. (1975). Formal Semantics for a Class of High-Level Primitives for Coordinating Concurrent Processes. Acta Informatica, Vol 5, pp 297–332.Google Scholar
  12. Liskov, V. (1979). Primitives for Distributed Computing. Proc. 7th Symp. on OS Principles, pp 33–42.Google Scholar
  13. Liskov, V. (1981). Reports on the Workshop on Fundamental Issues in Distributed Computing. ACM SIGOPS, Vol 15, No 3, pp 9–38.Google Scholar
  14. Mao T.W., and Yeh R.T. (1980). Communication Port: A Language Concept for Concurrent Programming. IEEE Trans. on Software Engineering, Vol SE-6, No 2, pp 194–204.Google Scholar
  15. Matelan, M.N. (1976) A Model for Real Time Control System Production. ACM SIGDA, Vol 6, No 2, pp 14–61.Google Scholar
  16. Nagata T. et al. (1979). An Outline of Poly Prosessor System for Control (PPSC). Bull. of ETL, Vol 43, No 4, pp 208–212.Google Scholar
  17. Tsukamoto M. (1981). Language Structures and Management Method in a Distributed Real-Time Environment. Proc. 3rd IFAC Workshop on DCCS, Beijing.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1982

Authors and Affiliations

  • Michiharu Tsukamoto
    • 1
  1. 1.Electrotechnical LaboratoryIbarakiJapan

Personalised recommendations