Concurrent programming in the Ada® language: The polling bias
- 1 May 1984
- journal article
- Published by Wiley in Software: Practice and Experience
- Vol. 14 (5) , 413-427
- https://doi.org/10.1002/spe.4380140503
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.Keywords
This publication has 7 references indexed in Scilit:
- Message passing between sequential processes: The reply primitive and the administrator conceptSoftware: Practice and Experience, 1981
- A comparative study of task communication in adaSoftware: Practice and Experience, 1981
- Output Guards and Nondeterminism in “Communicating Sequential Processes”ACM Transactions on Programming Languages and Systems, 1980
- Comments on “Communicating Sequential Processes”ACM Transactions on Programming Languages and Systems, 1979
- Rationale for the design of the Ada programming languageACM SIGPLAN Notices, 1979
- Communicating sequential processesCommunications of the ACM, 1978
- Design of a separable transition-diagram compilerCommunications of the ACM, 1963