www.wikidata.de-de.nina.az
In der Programmierung versteht man unter Prozesssynchronisation oder kurz einfach Synchronisation die Koordinierung des zeitlichen Ablaufs mehrerer nebenlaufiger Prozesse bzw Threads Dabei ist es unerheblich ob es sich um Threads in einem Programm um Programme auf einem Computer oder um Prozesse in einem Verteilten System handelt die uber ein Netzwerk kommunizieren Der Zweck der Koordinierung ist zumeist einer der folgenden Gemeinsamer Zugriff auf Daten Dabei muss verhindert werden dass durch gleichzeitigen Zugriff Inkonsistenzen in den Daten entstehen Dies wird durch Mutex Verfahren zum gegenseitigen Ausschluss realisiert Gemeinsame Nutzung beschrankter Betriebsmittel wie zum Beispiel von Peripheriegeraten Hierbei konnen ebenfalls Mutex Verfahren eingesetzt werden haufig werden aber komplexere Methoden des Schedulings benotigt Ubergabe von Daten bzw Nachrichten von einem Prozess an einen Anderen also Interprozesskommunikation Steuerung von Unterprozessen durch Signale insbesondere das Abbrechen von Prozessen oder das Warten darauf dass sie terminieren Die Synchronisation der Prozesse besteht nun darin dass im Allgemeinen ein Prozess auf ein Ereignis warten muss das von einem anderen ausgelost wird Es ist Aufgabe des Schedulers die sich daraus ergebenden kausalen Abhangigkeiten so umzusetzen dass ein Prozess immer nur dann Rechenzeit bekommt wenn alle dafur notwendigen Bedingungen erfullt sind Konkret wird dies meist durch die klassischen Kontrollmechanismen wie Locks Semaphore und Monitore gelost Die Abhangigkeiten zwischen den Prozessen lassen sich formal zum Beispiel durch ein Petri Netz modellieren Ein typisches Problem ist in diesem Zusammenhang dass sich Prozesse verklemmen konnen wenn sich zirkulare Abhangigkeiten bilden das wird zum Beispiel bei dem Problem der speisenden Philosophen deutlich Ein anderes prototypisches Problem ist die Steuerung eines Producer Consumer Systems Siehe auch BearbeitenParalleler Algorithmus Nichtsequentielle Programmierung Parallelisierung MultithreadingLiteratur BearbeitenJames H Anderson Yong Jik Kim Ted Herman Shared memory mutual exclusion major research trends since 1986 In Distrib Comput Band 16 Nr 2 3 Springer Verlag September 2003 ISSN 0178 2770 S 75 110 doi 10 1007 s00446 003 0088 6 M Raynal D Beeson Algorithms for mutual exclusion MIT Press Cambridge MA 1986 ISBN 0 262 18119 3 Abgerufen von https de wikipedia org w index php title Prozesssynchronisation amp oldid 158180631