Mehrprozessorsystem dualcore
-
Hallo Leute,
ich habe eine Konzeptfrage bzg. Unterstützung von Mehrkernsystemen.
Wenn ich eine Applikation mit gcc kompiliere und diese auf einem Rechner mit z.b. dualcore laufen lasse:
Wenn ich mit mehreren Threads arbeite wird doch nur ein Kern belastet oder?
Wenn ich mit mehreren Prozessen arbeite werden doch mehrere Kerne genutz oder?
Ist es eine reine Sach des Betriebssystem oder auch eine Sache des Kompilers?Grüße carsten
-
Das verteilen geht an das Betriebssystem!
Soweit ich weiß sollte das allerdings schon bei Threads aufgeteilt werden!Mit prozessen meinst du CreateProcess oder eigene EXE?
Also die EXE werden garantiert verteilt!
-
grisu1972 schrieb:
Wenn ich eine Applikation mit gcc kompiliere und diese auf einem Rechner mit z.b. dualcore laufen lasse:
Wenn ich mit mehreren Threads arbeite wird doch nur ein Kern belastet oder?Nein. Sofern das Betriebssystem Mehrkernprozessoren unterstützt, werden die Threads auch auf die zur Verfügung stehenden Kerne aufgeteilt.
grisu1972 schrieb:
Wenn ich mit mehreren Prozessen arbeite werden doch mehrere Kerne genutz oder?
Antwort wie oben. Prozesse sind nichts anderes als Container für Threads.
grisu1972 schrieb:
Ist es eine reine Sach des Betriebssystem oder auch eine Sache des Kompilers?
Es ist eine Sache des Betriebssystems und der verwendeten APIs. Die APIs selbst haben wiederum indirekten Einfluss auf den Kompiler.
-
Die Umgebung sieht wiefolgt aus:
Intel PC mit Suse 10.x mit gcc 3.x!
Wenn ich es richtig verstanden habe, kann es dem Entwickler egal sein auf was für einem System die Anwendung läuft, da das OS die Aufgabe verwaltet!Ist gcc die API oder ist es die posix pthread library?
-
Letzteres. Die API wäre in dem Fall die von POSIX zur Verfügung gestellten Funktionen. Auf anderen Systemen kann das aber auch eine andere API sein. Unter Windows wäre das zB die WinAPI.