Software Practice and Experience · 1984 · 21 citations · 9 references
ComputingComputer ScienceComputer SystemsDistributed SystemsProgramming LanguagesSystems ProgrammingConcurrent ProgrammingInterprocess CommunicationProcess CoordinationPolling SystemsSynchronization Mechanisms
Abstract The rendezvous is an important concept in concurrent programming—two processes need to synchronize, i.e. rendezvous, to exchange information. The Ada programming language is the first programming language to use the rendezvous as the basis of its concurrent programming facilities. Our experience with rendezvous facilities in the Ada language shows that these facilities lead to and encourage the design of programs that poll. Polling is generally, but not always, undesirable because it is wasteful of system resources. We illustrate and examine the reasons for polling bias in the Ada language. We give suggestions on how to avoid polling programs, and suggest changes to the rendezvous facilities to eliminate the polling bias. The ramifications of these changes to the implementation of the Ada language are also discussed. Although we have focused on the rendezvous facilities in the Ada language our analysis is also applicable to other languages. A polling bias can occur in any concurrent programming language based on the rendezvous mechanism if it does not provide appropriate facilities.
9
Communicating sequential processes
C. A. R. Hoare · Communications of the ACM · 1983 · 3.8K citations · Full text
Communicating sequential processes
C. A. R. Hoare · Communications of the ACM · 1978 · 3.5K citations · Full text
Design of a separable transition-diagram compiler
Melvin E. Conway · Communications of the ACM · 1963 · 441 citations · Full text
Rationale for the design of the Ada programming language
Jean D. Ichbiah, Bernd Krieg-Brueckner, Brian Wichmann et al. · ACM SIGPLAN Notices · 1979 · 408 citations · Full text