Nichtsequentielle und Verteilte Programmigung mit Go

Dr. Christian Maurer

Nichtsequentielle und Verteilte Programmierung mit Go
Synchronisation nebenläufiger Prozesse:
Kommunikation – Kooperation – Konkurrenz

Das Buch enthält Implementierungen vieler wichtiger Algorithmen

Schlösser

Algorithmus von Dekker zur Sicherung des gegenseitigen Ausschlusses für 2 Prozesse
Dijkstra, E. W.: Hierarchical Ordering of Sequential Processes.
Acta Informatica 1 (1971) 115-138
» www.cs.utexas.edu/users/EWD/ewd03xx/EWD310.PDF
Algorithmus von Dijkstra zur Sicherung des gegenseitigen Ausschlusses für mehrere Prozesse
Dijkstra, E. W.: Cooperating Sequential Processes.
» Technical Report EWD-123, Technological University Eindhoven (1965)
Tiebreaker-Algorithmus von Peterson
Peterson, G. L.: Myths about the Mutual Exclusion Problem. Inf. Proc. Letters 2 (1981) 115-116 » doi
Algorithmus von Kessels
Kessels, J. L. W.: Arbitration Without Common Modifiable Variables.
Acta Informatica 17 (1982) 135-141 » doi
Algorithmus von Doran und Thomas
Doran, R. W., Thomas, L. K.: Variants of the software solution to mutual exclusion.
Inf. Proc. Letters 10 (1980) 206-208 » doi
Algorithmus von Knuth
Knuth, D. E.: Additional Comments on a Problem in Concurrent Programming Control.
Commun. ACM 9 (1966) 321-322 » doi
Algorithmus von Habermann
in: Herrtwich, R. G., Hommel, G.: Nebenläufige Programme (Kooperation und Konkurrenz). Springer-Verlag Berlin Heidelberg New York (1994, 1989) » doi
Bäckerei-Algorithmus von Lamport
Lamport, L.: A new Solution of Dijkstra's Concurrent Programming Problem.
Commun. ACM 17 (1974) 453-455 » doi
» research.microsoft.com/en-us/um/people/lamport/pubs/bakery.pdf
und
Lamport, L.: A new Approach to Proving the Correctness of Multiprocess Programs. ACM Trans. Program. Lang. Syst. 1 (1979) 84-97 » doi
» research.microsoft.com/en-us/um/people/lam\-port/pubs/new-approach.pdf
Algorithmus von Morris
Morris, J. M.: A starvation: free solution to the mutual exclusion problem. Inf. Proc. Lletters 8 (1979) 76-80 » doi
Algorithmus von Szymanski
Szymanski, B. K.: A Simple Solution to Lamport's Concurrent Programming Problem with Linear Wait.
in: Lenfant, J. (ed.): ICS '88, New York. ACM (1988) 621-626 » doi

Semaphore

Algorithmus von Udding zur Konstruktion fairer binärer Semaphore
Udding, J. T.: Absence of Individual Starvation using Weak Semaphores.
Inf. Proc. Letters 23 (1986), 159-162 » doi
Der schlafende Barbier von Dijkstra
Dijkstra, E. W.: Cooperating Sequential Processes.
» Technical Report EWD-123, Technological University Eindhoven (1965)
Algorithmus von Barz zur Konstruktion allgemeiner Semaphore
Barz, H. W.: Implementing Semaphores by Binary Semaphores.
ACM Sigplan Notices 18 (1983) 39-x-45 » doi
Algorithmus von Courtois, Heymans und Parnas zur Lössung des 2. Leser-Schreiber-Problems
Courtois, P. J., Heymans, F., Parnas, D. L.: Concurrent Control with ``Readers'' and ``Writers''.
Commun. ACM 14 (1971) 667-668 » doi
Algorithmus von Parnas zur Lösung des Problems der Zigarettenraucher
Parnas, D. L.: On a Solution to the Cigarette Smoker's Problem without conditional statements.
Commun. ACM 18 (1975) 181-183 » doi

Verklemmungen

Der Bankiers-Algorithmus von Dijkstra
Dijkstra, E. W.: Een algorithme ter voorkoming van de dodelijke omarming.
» Technical Report EWD-108, Technological University Eindhoven (1964)

Monitore

Der Wecker von Hoare
Hoare, C. A. R.: Monitors: An Operating Systems Structuring Concept.
Commun. ACM 17 (1974) 549--557 » doi
Der Staffelstab-Algorithmus von Andrews
in: Andrews, G. R.: Foundations of Multithreaded, Parallel and Distributed Programming, S. 171 ff.
Addison-Wesley Reading (2000)

Traversierungsalgorithmen

Algorithmus von Awerbuch
Awerbuch, B.: A New Distributed Depth-First-Search Algorithm. Inf. Proc. Letters 20 (1985) 147-150 » doi
Algorithmus von Hélary und Raynal
Hélary, J.-M., Raynal, M.: Depth-first traversal and virtual ring construction in distributed Systems.
Research Rreport RR-0704, INRIA, 1987 » hal.inria.fr/inria-00075848

Auswahlalgorithmen

Algorithmus von Chang und Roberts
Chang, E., Roberts, R.: An Improved Algorithm for Decentralized Extrema-Finding in Circular Configurations of Processes.
Commun. ACM 22 (1979) 281-283 » doi
Algorithmus von Hirschberg und Sinclair
Hirschberg, D. S., Sinclair, J. B.: Decentralized Extrema Finding in Circular Configurations of Processes.
Commun. ACM 23 (1980) 627-628 » doi
Algorithmus von Peterson
Peterson, G. L.: An n/log n Unidirectional Algorithm for the Circular Extrema Finding Problem.
ACM Trans. Program. Lang. Syst. 4 (1982) 758-762 » doi