Die Standardmethode zum Erstellen neuer Prozesse unter Linux besteht darin, dass der Speicherbedarf des übergeordneten Prozesses kopiert wird und die Umgebung des untergeordneten Prozesses execv
aufgerufen wird, bis .
Über welchen Speicherbedarf sprechen wir, über den virtuellen (was der Prozess anforderte) oder den residenten (was wird tatsächlich verwendet)?
Motivation: Ich besitze ein Gerät mit begrenztem Auslagerungsspeicher und eine Anwendung mit einem großen Unterschied zwischen dem virtuellen und dem residenten Speicherbedarf. Die Anwendung kann aufgrund von Speichermangel nicht verzweigen und möchte wissen, ob der Versuch, die Größe des virtuellen Footprints zu verringern, hilfreich ist.
If enough is available the kernel will commit to the full virtual size of the parent for both processes after the fork.
Ja Dankeschön. Dies bedeutet, dass die Reduzierung des virtuellen Speicherbedarfs des Prozesses in einer Umgebung mit begrenztem Arbeitsspeicher (RAM und Swap) das Problem lösen kann, dass keine Verzweigung möglich ist.