dejup
28-01-2002, 17:01
Wenn ich ein Programm mittels frok() in Eltern und Kind - Prozess aufteile, dann in jedem Prozess 2000 mal
printf("%i", getpid())
ausgebe, dann wird 2000 mal hintereinander die Prozess ID des Elternprozesses ausgegeben und anschließend 2000 mal die PID des Kindes.
Wenn ich nun die einzelnen Ausgaben mit einem sleep(1) unterbreche, werden die Prozesse durcheinander ausgeführt. Bei einem Bekannten werden die Prozesse auch ohne sleep(1) versetzt ausgeführt.
Gibt es irgendeine Möglichkeit, die dem Kernel zuweist, nach welcher verbrauchten Prozessorzeit er den laufenden Prozess wechselt?
Oder ist das Verhalten von fork() vollkommen normal?
vielen Dank im vorraus
mfg
de.jup
printf("%i", getpid())
ausgebe, dann wird 2000 mal hintereinander die Prozess ID des Elternprozesses ausgegeben und anschließend 2000 mal die PID des Kindes.
Wenn ich nun die einzelnen Ausgaben mit einem sleep(1) unterbreche, werden die Prozesse durcheinander ausgeführt. Bei einem Bekannten werden die Prozesse auch ohne sleep(1) versetzt ausgeführt.
Gibt es irgendeine Möglichkeit, die dem Kernel zuweist, nach welcher verbrauchten Prozessorzeit er den laufenden Prozess wechselt?
Oder ist das Verhalten von fork() vollkommen normal?
vielen Dank im vorraus
mfg
de.jup