Hallo,
ich bin dabei eine Applikation zu planen, die ich dann in C schreiben möchte. Es wird ein kurzes aber knackiges Programm, das viel Speicher und CPU Zeit benötigt. Das Programm soll neben einer aufwendigen mathematischen Berechnung in einem regelmäßigen Takt von 10 Millisekunden ein UDP Paket an einen Server schicken. Es wäre am besten, wenn der Versand der UDP Pakete als ein gesonderter Thread abläuft, damit die Taktung nicht von der Rechengeschwindigkeit des Hauptprozesses abhängt. Mein Plan ist es ein Kindprozess per fork() zu erzeigen und per IPC (shared memory block) die Daten vom Hauptprozess bereit stellen zu lassen.
Grundsätzlich erstmal, ist dieser Plan soweit in Ordnung, oder rollen schon einige Fussnägel hoch?
Nun habe ich ja gelesen, dass fork() den ganzen Adressraum des parents kopiert. Das ist gar nicht gut. Der kleine Thread braucht eigentlich nur zwei drei interne Variablen und Zugriff auf den shared memory block. Der Elternprozess hingegen soll Megabyteweise Daten im Speicher halten. Die werden dann alle kopiert wenn ich fork() aufrufe und blockieren dann nutzlos meinen halben Speicher? Oder kann ich was dagegen tun?
Vielen Dank
Cruz