Nun studiere ich parallel computing und algorithmen bin ich etwas verwirrt über die Bedingungen concurrent execution
und simultaneous execution
.
Was ist der Unterschied zwischen diesen Begriffen? Wann haben wir zum nutzen concurrent
und Wann müssen wir nutzen simultaneous
parallel computing?
Gleichzeitige Ausführung ist etwa die Verwendung mehrerer Ressourcen (cores, HW-threads, etc..), um mehrere Aufgaben gleichzeitig. Die Aufgaben müssen nicht interagieren, in irgendeiner Weise, die Sie haben können zwei verschiedene Anwendungen gleichzeitig auf zwei verschiedenen Kernen, zum Beispiel, oder auf dem gleichen Kern.
Die Kunst der Gestaltung der Systeme, um in der Lage sein, mehrere Aufgaben gleichzeitig kann gesagt werden, befassen sich mit gleichzeitige Ausführung. Hyper-threading-z.B. wird auch als "SMT", simultanes multi-threading, da es sich mit der Fähigkeit zum ausführen von zwei threads mit Ihrem vollen Kontext gleichzeitig auf einem single-core (Das ist Intels " - Ansatz, AMD hat eine etwas andere Lösung finden - Unterschied zwischen intel-und AMD-multithreading)
Gleichzeitigkeit ist ein Begriff, der sich auf einer höheren Ebene der Abstraktion, im Zusammenhang mit der OS-Welt. Es ist eine Eigenschaft der Ausführungsumgebung, in dem Sie mehrere Aufgaben, die ausgeführt werden kann im Laufe der Zeit, während Sie keine Kontrolle über die Reihenfolge oder auch die form von Verschachtelung, in der Sie durchgeführt. Es spielt keine Rolle, wenn Sie parallel auf mehreren Kernen, die auf einem Kern mit SMT, oder sogar auf eine single-threaded-Kern mit einigen preemption-Mechanismus und einige scheduling-Algorithmus, der bricht die Aufgaben in Stücke und ständig swaps zwischen Ihnen. Die wichtige Sache hier ist, dass Parallelität zwingt Sie, Ihre design-Aufgaben in einer Weise, die garantiert Korrektheit (vor allem, wenn Sie interagieren oder zum Austausch von Daten) auf einem beliebigen Typ von system mit beliebiger Reihenfolge oder Verschachtelung.
Wenn die Aufgabe richtig (mit der richtigen sperren, Schranken, Ampeln, und nichts garantiert richtigen Daten fließen), und das OS macht seinen job richtig (speichern Staaten auf den Kontext wechseln zum Beispiel oder clearing-caches und den Abschuss TLB-Einträge, wenn nötig), dann läuft es mit jeder form der Ausführung, Modell "unter der Haube".
Da Sie sich beziehen parallele algorithmen, die richtige Bezeichnung für Sie ist wahrscheinlich die gleichzeitige Ausführung.
Gibt es ganz viele Beispiele in diesem thread (mit zusätzlichen links zu den Quellen - ich werde nicht kopieren Sie es hier zu vermeiden Plagiat 🙂 - Was ist der Unterschied zwischen Gleichzeitigkeit und Parallelität?