×

Fairness in shared invocation servicing. (English) Zbl 1028.68027

Summary: Invocation servicing is an important aspect of many concurrent programming languages. Some invocation handling mechanisms allow for multiway servicing by multiple processes. This paper addresses fairness with respect to choosing which invocation to service and fairness with respect to choosing which process to perform the servicing. It examines how these fairness issues have been resolved in the SR concurrent programming language. This paper presents a new approach that eliminates several key restrictions. The new approach has been implemented in JR, an extended Java that includes SR-like synchronization mechanisms. This paper discusses design and implementation issues and tradeoffs.

MSC:

68N19 Other programming paradigms (object-oriented, sequential, concurrent, automatic, etc.)

Software:

Linda; Ada95
PDFBibTeX XMLCite
Full Text: DOI

References:

[1] PVM. Parallel virtual machine system (PVM) version 3 manual pages, 1992.; PVM. Parallel virtual machine system (PVM) version 3 manual pages, 1992.
[2] MPI: A message-passing interface standard (version 1.1). Message Passing Interface Forum, June 1995. http://www.mcs.anl.gov/mpi/mpi-report-1.1/mpi-report.html; MPI: A message-passing interface standard (version 1.1). Message Passing Interface Forum, June 1995. http://www.mcs.anl.gov/mpi/mpi-report-1.1/mpi-report.html
[3] Engelschall RS. Portable multithreading—the signal stack trick for user-space thread creation. USENIX Annual Technical Conference, June 2000. p. 239-50.; Engelschall RS. Portable multithreading—the signal stack trick for user-space thread creation. USENIX Annual Technical Conference, June 2000. p. 239-50.
[4] Engelschall RS. Gnu Pth. http://www.gnu.org/software/pth/; Engelschall RS. Gnu Pth. http://www.gnu.org/software/pth/
[5] Gelernter, D., Generative communication in Linda, ACM Transactions on Programming Languages and Systems, 7, 1, 80-112 (1985) · Zbl 0559.68030
[6] Hoare, C. A.R., Communicating sequential processes, Communications ACM, 21, 8, 666-667 (1978) · Zbl 0383.68028
[7] Burns, A., Programming in occam (1988), Addison Wesley: Addison Wesley Reading, MA
[8] Intermetrics, Inc., 733 Concord Ave, Cambridge, Massachusetts 02138. The Ada 95 Annotated Reference Manual (v6.0), January 1995. ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat; Intermetrics, Inc., 733 Concord Ave, Cambridge, Massachusetts 02138. The Ada 95 Annotated Reference Manual (v6.0), January 1995. ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat
[9] Hilderink G, Broenink J, Vervoort W, Bakkers A. Communicating Java threads. In WoTUG 20, 1997. p. 48-76.; Hilderink G, Broenink J, Vervoort W, Bakkers A. Communicating Java threads. In WoTUG 20, 1997. p. 48-76.
[10] Dorward S, Pike R. Programming in Limbo. In Proceedings of the 42nd IEEE Computer Society International Conference (COMPCON 1997), San Jose, CA., 1997. p. 245-50.; Dorward S, Pike R. Programming in Limbo. In Proceedings of the 42nd IEEE Computer Society International Conference (COMPCON 1997), San Jose, CA., 1997. p. 245-50.
[11] Andrews, G. R.; Olsson, R. A., The SR programming language: concurrency in practice (1993), Benjamin/Cummings Publishing Company, Inc: Benjamin/Cummings Publishing Company, Inc Redwood City, CA · Zbl 0768.68007
[12] Keen AW, Ge T, Maris JT, Olsson RA. JR: Flexible distributed programming in an extended Java. In Proceedings of the 21st IEEE International Conference on Distributed Computing Systems (ICDCS 2001), Phoenix, Arizona, April 2001. p. 575-84.; Keen AW, Ge T, Maris JT, Olsson RA. JR: Flexible distributed programming in an extended Java. In Proceedings of the 21st IEEE International Conference on Distributed Computing Systems (ICDCS 2001), Phoenix, Arizona, April 2001. p. 575-84.
[13] Gehani, N.; Roome, W. D., The concurrent C programming language (1989), Silicon Press: Silicon Press Summit, NJ · Zbl 0661.68006
[14] Strom, R. E., Hermes: a language for distributed computing (1991), Prentice-Hall: Prentice-Hall Englewood Cliffs, NJ
[15] Hartley, S. J., Concurrent programming: the Java programming language (1998), Oxford University Press: Oxford University Press Oxford
[16] Andrews, G. R., Concurrent programming: principles and practice (1991), Benjamin/Cummings Publishing Company, Inc: Benjamin/Cummings Publishing Company, Inc Redwood City, CA
[17] Elrad T, Maymir-Ducharme F. Distributed languages design: constructs for controlling preferences. In Proceedings of the 1986 International Conference on Parallel Processing, St. Charles, Illinois, August 1986. p. 176-83.; Elrad T, Maymir-Ducharme F. Distributed languages design: constructs for controlling preferences. In Proceedings of the 1986 International Conference on Parallel Processing, St. Charles, Illinois, August 1986. p. 176-83.
[18] Elrad T, Maymir-Ducharme F. Satisfying emergency communication requirements with dynamic preference control. In Proceedings of Sixth Annual National Conference on Ada Technology, March 14-17, 1988.; Elrad T, Maymir-Ducharme F. Satisfying emergency communication requirements with dynamic preference control. In Proceedings of Sixth Annual National Conference on Ada Technology, March 14-17, 1988.
[19] Olsson, R. A.; McNamee, C. M., Inter-entry selectionnondeterminism and explicit control mechanisms, Computer Languages, 17, 4, 269-282 (1992)
[20] McNamee, C. M.; Crow, W. A., Inter-entry selection control mechanismsimplementation and evaluation, Computer Languages, 22, 4, 259-278 (1996)
[21] Andrews, G. R.; Olsson, R. A.; Coffin, M.; Elshoff, I.; Nilsen, K.; Purdin, T.; Townsend, G., An overview of the SR language and implementation, ACM Transactions on Programming Languages and Systems, 10, 1, 51-86 (1988)
[22] Townsend GM. Release notes for version 2.2 of SR. University of Arizona, 1993. http://www.cs.arizona.edu/sr/; Townsend GM. Release notes for version 2.2 of SR. University of Arizona, 1993. http://www.cs.arizona.edu/sr/
[23] The SR programming language, version 2.3.2, August 1999.; The SR programming language, version 2.3.2, August 1999.
[24] Keen AW, Ishihara T, Mans JT, Li T, Fodor EF, Olsson RA. A comparison of concurrent programming and cooperative multithreading. Concurrency and Computation: Practice & Experience 2003;15(1):27-53.; Keen AW, Ishihara T, Mans JT, Li T, Fodor EF, Olsson RA. A comparison of concurrent programming and cooperative multithreading. Concurrency and Computation: Practice & Experience 2003;15(1):27-53. · Zbl 1005.68578
[25] McNamee, C. M.; Olsson, R. A., Transformations for optimizing interprocess communication and synchronization mechanisms, International Journal of Parallel Programming, 19, 5, 357-387 (1990)
[26] McNamee, C. M.; Olsson, R. A., An attribute grammar approach to compiler optimization of intra-module interprocess communication, International Journal of Parallel Programming, 20, 3, 181-202 (1991)
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.