init - Synchronisation in Doku
This commit is contained in:
parent
7f6b53b549
commit
3cd8ca1d0d
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -150,3 +150,6 @@ cython_debug/
|
||||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
#.idea/
|
#.idea/
|
||||||
|
#
|
||||||
|
.markdown-preview.html
|
||||||
|
|
||||||
|
|
13
README.md
13
README.md
|
@ -34,4 +34,15 @@ schon im richtigen Zustand befindet.
|
||||||
|
|
||||||
## Zeitliche Synchronisation
|
## Zeitliche Synchronisation
|
||||||
Um sicherzustellen, dass alle Teilnehmer gleichzeitig den Entwicklungsschritt durchführen und somit der Randaustausch auch
|
Um sicherzustellen, dass alle Teilnehmer gleichzeitig den Entwicklungsschritt durchführen und somit der Randaustausch auch
|
||||||
korrekt funktioniert.
|
korrekt funktioniert, wird eine vereinfachte Version von Lamport Clocks verwendet.
|
||||||
|
Jeder Prozess hat einen Counter, den er bei jedem Entwicklungsschritt um eins erhöht.
|
||||||
|
Da für jeden Entwicklungsschritt zuerst die Ränder der benachbarten Teilenehmer abgefragt werden müssen und dies blockieriend geschieht, sind alle Teilnehmer zu jedem Zeitpunkt um maximal 1 bezüglich ihres Counters versetzt.
|
||||||
|
Damit man jedoch mit seinem Entwicklungsschritt nicht warten muss, bis alle Nachbar den Rand angefragt haben, hält jeder Prozess eine Kopie seine Randes vom vorherigen Zeitpunkt.
|
||||||
|
Bei der Anfrage nach dem Rand wird der nachgefragte Counter mitgeschickt, dieser muss dem aktuellen oder dem vorherigen Counter entsprechen oder um eins größer sein, als der aktuelle Counter.
|
||||||
|
Ist der angefragte Counter um eins größer als der aktuelle, liegt also quasi in der Zukunft, wird der Request blockiert, bis der Angefragte den nächsten Entwicklungsschritt durchgeführt hat.
|
||||||
|
Somit wird das gesamte Game of Life nur so schnell ausgeführt, wie der langsamste Teilenehmer ist.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- LocalWords: Counter
|
||||||
|
-->
|
||||||
|
|
Loading…
Reference in a new issue