Warum ist das Erstellen eines Prozesses ein zweistufiger Prozess (Fork-Exec)?
363
ddmichael
Ich studiere Tanenbaums Buch "Modern Operating Systems" und er erklärt das:
Der Grund für diesen zweistufigen Prozess besteht darin, dem Kind zu erlauben, seine Dateideskriptoren nach der Verzweigung, aber vor der Ausführung zu bearbeiten, um die Umleitung der Standardeingabe, der Standardausgabe und des Standardfehlers zu erreichen.
Könnten Sie das näher erläutern?
Erwähnt er CLOSE ON EXEC? Es gibt Dateideskriptorattribute, die bestimmen, ob ein Dateideskriptor in einem Exec erhalten bleibt. Wenn also ein Deskriptor geschlossen wird, müssen Sie möglicherweise etwas tun, wie beispielsweise den Aufruf von ioctl () und fcntl (), um die Attribute zu ändern.
jim mcnamara vor 10 Jahren
0
Nein, ich fürchte, er gibt dazu keine weiteren Informationen.
ddmichael vor 10 Jahren
0
0 Antworten auf die Frage
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
1
Pausieren Sie alle Aufgaben außer x CPU-intensiven Aufgaben
-
9
X-Schritte in X-Sitzungen "trennen" und "neu anhängen"?
-
1
Windows-Datumsrepräsentation
-
9
grep alle .java-Dateien in einem Verzeichnis für eine bestimmte Zeichenfolge
-
1
Ist kill -STOP ein temporärer Befehl?
-
2
Anzahl der Zeilen und Spalten in VT420 ändern?
-
10
Wie kann ich die Bash-Historie durchsuchen und einen Befehl erneut ausführen?
-
2
Kann die Ausgabe eines Befehls an zwei andere Befehle weitergeleitet werden?
-
3
Hör auf, cron mich zu mailen