W2k: Prozeßsynchronisation, Kindprozesse

Hi,

wie kann man unter W2k mehrere Prozesse starten und synchronisieren?

Es geht darum, daß ein Monitorprozeß drei Prozesse startet, diese aber unterschiedlich schnell sind. Wenn Prozeß A fertig ist, sendet dieser ein Signal an den Monitor, dann legt sich A schlafen. Der Monitor wartet darauf, daß auch B und C fertig sind und das dem Monitor mitteilen. Jetzt verarbeitet der Monitor Daten und sendet ein Signal an die schlafenden/wartenden Prozesse A, B und C. Die nehmen wieder ihren Job auf.

Unter Unix koennte man mit fork() und signal() Kindprozesse starten und Signale versenden. Aber wie macht man das unter W2k? Dabei muß eine Langzeitstabilitaet gesichert sein. Irgendwo habe ich was von DDE gelesen, weiss aber nicht ob das der richtige Weg ist.

Li

Hallo!

Ich weiss nicht was du machen willst, aber vieleicht wäre es besser die Rechenaufgaben in einzelnen Threads laufen zu lassen.
Wenn man Aufgaben auf mehrere Prozesse verteilt, dann ist der Overhead unter umständen grösser als alles im einem Prozes zu halten (was ist wenn ein Prozess abstürzt, oder vom user beendet wird?,wie schaut es mit der restartfähigkeit eines Prozesses aus?,und und und…).
Aber egal, zu deiner Frage:

Starten eines Prozesses geht mit CreateProcesss.
Zur Thread/Prozess komunikation bzw. syncronisation kannst du dir in der MSDN folgende Funktionen anschauen: CreateMutex,SetEvent,WaitForSingleObject.

Alles weitere ist in der MSDN beschreieben, Gruß Pauli!

Ich weiss nicht was du machen willst, aber vieleicht wäre es
besser die Rechenaufgaben in einzelnen Threads laufen zu
lassen.

Das ist eigentlich Latte, ob Thread oder Prozeß. Hauptsache es läuft quasi-parallel ab.

Starten eines Prozesses geht mit CreateProcesss.
Zur Thread/Prozess komunikation bzw. syncronisation kannst du
dir in der MSDN folgende Funktionen anschauen:
CreateMutex,SetEvent,WaitForSingleObject.

Funktionieren denn die POSIX-Aufrufe denn überhaupt nicht, nur teilweise oder wie verhält sich das? Müssen wir uns wirklich in den Krams einabeiten?

Danke erstmal für die Tips.

Li