Advertisement

Schlösser

  • Christian Maurer
Chapter

Zusammenfassung

Dies ist das erste Kapitel, das sich mit der Konstruktion bestimmter Algorithmen zur Synchronisation nebenläufiger Prozesse befasst – den Ein- und Austrittsprotokollen zum Schutz kritischer Abschnitte. Den Effekt eines Eintrittsprotokolls kann man sich intuitiv etwa so vorstellen: Ein Prozess verschließt bei seinem Durchlaufen den Zugang zu einem kritischen Abschnitt hinter sich, um ihn nach dem Verlassen des kritischen Abschnitts im Austrittsprotokoll wieder aufzuschließen. Deshalb nennt man die Implementierungen dieser Protokolle Schlossalgorithmen und die zugehörigen Datentypen Schlösser .

Nach der Spezifikation von Schlössern werden sie unter Verwendung von – an gängigen Prozessoren ausgerichteten – Maschineninstruktionen implementiert und diese Verfahrensweisen bewertet. Danach werden Möglichkeiten vorgestellt, Ein- und Austrittsprotokolle zum Betreten kritischer Abschnitte mit elementaren Methoden der sequentiellen Programmierung durch den Zugriff auf gemeinsam benutzte Variablen zu implementieren. Viele dieser Lösungen sind ,,klassische Algorithmen“, die die Forschung über Jahre geprägt haben. Allerdings stellen sich dabei auch eine Reihe von – konzeptionellen wie praktischen – Nachteilen und Einschränkungen heraus.

Literatur

  1. 1.
    Advanced Micro Devices Corporation, Inc.: AMD64 Architecture Programmer’s Manual (2018). https://developer.amd.com/resources/developer-guides-manuals/
  2. 2.
    De Bruijn, J.G.: Additional comments on a problem in concurrent programming control. Commun. ACM 9, 321–322 (1967). https://doi.org/10.1145/355606.361895 Google Scholar
  3. 3.
    Dijkstra, E.W.: Cooperating sequential processes. Technical Report EWD-123, Technological University Eindhoven (1965). https://www.cs.utexas.edu/users/EWD/ewd01xx/EWD123.PDF
  4. 4.
    Dijkstra, E.W.: Hierarchical ordering of sequential processes. Acta Informatica 1, 115–138 (1971). https://www.cs.utexas.edu/users/EWD/ewd03xx/EWD310.PDF MathSciNetCrossRefGoogle Scholar
  5. 5.
    Dijkstra, E.W.: An Assertional Proof of a Program by G. L. Peterson (1981). https://www.cs.utexas.edu/users/EWD/ewd07xx/EWD779.PDF
  6. 6.
    Doran, R.W., Thomas, L.K.: Variants of the software solution to mutual exclusion. Inf. Proc. Lett. 10, 206–208 (1980). https://doi.org/10.1016/0020-0190(80)90141-6 MathSciNetCrossRefGoogle Scholar
  7. 7.
    Eisenberg, M.A., McGuire, M.R.: Further comments on Dijkstra’s concurrent programming control problem. Commun. ACM 15, 999 (1972). https://doi.org/10.1145/355606.361895 CrossRefGoogle Scholar
  8. 8.
    Herrtwich, R.G., Hommel, G.: Nebenläufige Programme (Kooperation und Konkurrenz). Springer, Berlin/Heidelberg/New York (1994). https://doi.org/10.1007/978-3-642-57931-8 CrossRefGoogle Scholar
  9. 9.
    Hyman, H.: Comments on a problem in concurrent programming control. Commun. ACM 9, 45 (1966). https://doi.org/10.1145/365153.365167 CrossRefGoogle Scholar
  10. 10.
    Intel Corporation: Intel® 64 and IA-32 Architectures Software Developer Manuals (2019). https://software.intel.com/en-us/articles/intel-sdm Google Scholar
  11. 11.
    Kessels, J.L.W.: Arbitration without common modifiable variables. Acta Informatica 17, 135–141 (1982). https://doi.org/10.1007/BF00288966 MathSciNetCrossRefGoogle Scholar
  12. 12.
    Knuth, D.E.: Additional comments on a problem in concurrent programming control. Commun. ACM 9, 321–322 (1966). https://doi.org/10.1145/355592.365595 CrossRefGoogle Scholar
  13. 13.
    Lamport, L.: A new solution of Dijkstra’s concurrent programming problem. Commun. ACM 17, 453–455 (1974). https://doi.org/10.1145/361082.361093. https://research.microsoft.com/en-us/um/people/lamport/pubs/bakery.pdf
  14. 14.
    Lamport, L.: A new approach to proving the correctness of multiprocess programs. ACM Trans. Program. Lang. Syst. 1, 84–97 (1979). https://doi.org/10.1145/357062.357068. https://research.microsoft.com/en-us/um/people/lamport/pubs/new-approach.pdf
  15. 15.
    Morris, J.M.: A starvation: free solution to the mutual exclusion problem. Inf. Proc. Lett. 8, 76–80 (1979). https://doi.org/10.1016/0020-0190(79)90147-9 CrossRefGoogle Scholar
  16. 16.
    Motorola Inc.: Programmers Reference Manual. Motorola. https://www.nxp.com/files-static/archives/doc/ref_manual/M68000PRM.pdf
  17. 17.
    Peterson, G.L.: Myths about the mutual exclusion problem. Inf. Proc. Lett. 2, 115–116 (1981). https://doi.org/10.1016/0020-0190(81)90106-X CrossRefGoogle Scholar
  18. 18.
    Peterson, G.L.: A new solution to Lamport’s concurrent programming problem using small shared variables. ACM Trans. Program. Lang. Syst. 5, 56–65 (1983). https://doi.org/10.1145/357195.357199 CrossRefGoogle Scholar
  19. 19.
    Szymanski, B.K.: A simple solution to Lamport’s concurrent programming problem with linear wait. In: Lenfant, J. (ed.) ICS’88, pp. 621–626. ACM, New York (1988). https://doi.org/10.1145/55364.55425 Google Scholar

Copyright information

© Springer Fachmedien Wiesbaden GmbH, ein Teil von Springer Nature 2019

Authors and Affiliations

  • Christian Maurer
    • 1
  1. 1.Institut für InformatikFreie Universität BerlinBerlinDeutschland

Personalised recommendations