2016-11-25 2 views

Antwort

1

Race-Bedingungen treten immer noch in verteilten Systemen auf.

Gemäß Wikipedia, "Der Vorteil von verteilten Speicher ist, dass es Race Conditions ausschließt, [...]". Ich mache nicht stimme dieser Aussage zu, wie es steht. Hier ist meine Begründung:

Wenn Sie nicht zwischen Prozessen kommunizieren, ist dies ein triviales Problem in beiden Modellen; Berühre einfach nicht die Ressourcen anderer.

Wenn Sie kein asynchrones Netzwerk haben, wird Ihre Leistung sehr darunter leiden, so ziemlich alle CPUs verwenden asynchrone Netzwerke intern und extern.

Wenn Sie in irgendeiner Weise asynchron zwischen den Prozessen kommunizieren, sei es Shared Memory, Message Passing oder was Sie haben, gibt es Systeme, in denen Race-Bedingungen auftreten können.

Betrachten A "sei x = 4" bis B.
Gleichzeitig senden, sendet C bis B.

Does 4 oder 5 x gleich "x = 5 lassen", nachdem beide Nachrichten verarbeitet werden?

Obwohl Sie nie ein Rennen auf der Speicherebene, dh Threads überschreibt Nachrichten von ihnen oder ähnlich schrecklichen Dingen, die mit Shared-Memory passieren können, die Anwendung kann immer noch von Rennbedingungen leidet an einem höheren Abstraktionsschicht.

Verwandte Themen