Contents
Fork ist eine Funktion im UNIX-Betriebssystem, die verwendet wird, um ein Duplikat eines bestimmten Prozesses zu erzeugen, indem zwei gleichzeitig ausgeführte Prozesse eines Programms erstellt werden. Diese beiden Prozesse werden normalerweise als “Eltern-” und “Kind”-Prozesse bezeichnet. Sie verwenden Multitasking-Protokolle, um Systemressourcen gemeinsam zu nutzen.
Wenn fork einen neuen Prozess durch Kopieren des aktuellen Prozesses erstellt, führt es ein Copy-O-Write durch. Dies bedeutet, dass der Speicher des neuen Prozesses mit dem Elternprozess geteilt wird, bis er geändert wird. Wenn der Speicher geändert wird, wird der Speicher kopiert, um sicherzustellen, dass jeder Prozess seine eigene gültige Kopie des Speichers hat.
Exec ist eine Funktionalität eines Betriebssystems, die eine ausführbare Datei im Kontext eines bereits vorhandenen Prozesses ausführt und die vorherige ausführbare Datei ersetzt. Dieser Vorgang wird auch als Overlay bezeichnet. Es ist besonders wichtig in Unix-ähnlichen Systemen, obwohl es an anderer Stelle existiert. Da kein neuer Prozess erstellt wird, ändert sich die Prozesskennung nicht, aber Maschinencode, Datenhaufen und Stack des Prozesses werden durch die des neuen Programms ersetzt.
Der exec-Systemaufruf wird verwendet, um eine Datei auszuführen, die sich in einem aktiven Prozess befindet. Beim Aufruf von exec wird die vorherige ausführbare Datei ersetzt und die neue Datei ist ausführbar. Genauer gesagt können wir sagen, dass die Verwendung des exec-Systemaufrufs die alte Datei oder das Programm aus dem Prozess durch eine neue Datei oder ein neues Programm ersetzt.
VERGLEICHSGRUNDLAGE | GABEL | EXEC |
Beschreibung | Fork ist eine Funktion im UNIX-Betriebssystem, die verwendet wird, um ein Duplikat eines bestimmten Prozesses zu erzeugen, indem zwei gleichzeitig ausgeführte Prozesse eines Programms erstellt werden. | Exec ist eine Operation in einem UNIX-Betriebssystem, die einen Prozess erstellt, indem sie den vorherigen Prozess ersetzt. |
Systemaufruf | Der Fork-Systemaufruf erzeugt eine Duplikatkopie des aufrufenden Prozesses. | Der Systemaufruf exec dient dazu, die gesamten aktuellen aufrufenden Prozesse durch ein neues Programm insgesamt zu ersetzen. |
Neuer Prozess/Programm | Der durch einen Fork-Systemaufruf erzeugte neue Prozess ist in fast jeder Hinsicht mit dem Elternprozess identisch. | Das neue Programm, das den aktuellen Prozess ersetzt, wird geladen und vom Einstiegspunkt aus ausgeführt. |
Nach Systemaufruf | Nach dem Fork-Systemaufruf werden sowohl der Kind- als auch der Elternprozess gleichzeitig ausgeführt. | Nach dem exec-Systemaufruf wird die Kontrolle nie an das ursprüngliche Programm übergeben, bis kein exec()-Fehler auftritt. |
Eltern- und Kindprozesse | In fork befinden sich der übergeordnete und der untergeordnete Prozess in unterschiedlichen Adressräumen. | In Exec ersetzt der untergeordnete Adressraum den übergeordneten Adressraum. |
Beispiel | int execvp (const char *file_name, char*const argv[]) | int execvp (const char *file_name, char*const argv[]) |
Einleitung: Die Begriffe "Freeway" und "Highway" werden oft synonym verwendet, aber es gibt subtile Unterschiede…
Burritos und Enchiladas sind zwei beliebte Gerichte der mexikanischen Küche, die oft miteinander verwechselt werden.…
In der Zellbiologie spielen Replikation und Transkription entscheidende Rollen im genetischen Prozess. Beide sind Mechanismen,…
Osmose und Diffusion sind zwei grundlegende Prozesse, die in der Zellbiologie und Chemie eine entscheidende…
Einleitung: Die Evolution der mobilen Kommunikationstechnologie hat einen bedeutenden Meilenstein erreicht, als 4G (LTE) zu…
Einleitung: JPG und PNG sind zwei gängige Bildformate, die im Internet weit verbreitet sind. Obwohl…