Exemple de fork en c

Fondamentalement comment les valeurs changent-elles avec les fonctions de fourche? Nous voyons que dans la sortie ci-dessus, le processus enfant et parent a été exécuté et les journaux montrent des valeurs distinctes de var_lcl et var_glb. Si un processus fourchue va simplement appeler exec, l`espace de données copié du parent à l`enfant par fork () n`est pas utilisé. Le nouveau processus créé par fork () est une copie du processus actuel, à l`exception de la valeur retournée. Fork () a un comportement intéressant en retournant à la méthode d`appel. Dans la conception originale du système d`exploitation VMS (maintenant OpenVMS) (1977), une opération de copie avec la mutation subséquente du contenu de quelques adresses spécifiques pour le nouveau processus comme dans la bifurquer a été considérée comme risquée. La forking est une partie importante d`Unix, critique à l`appui de sa philosophie de conception, qui favorise le développement de filtres. Pour de plus amples lectures, veuillez consulter le chapitre 3 du texte en ligne programmation avancée Linux. Selon la taille de l`espace de données du parent, vfork () peut donner une amélioration significative des performances par rapport à Fork (). Comme déjà indiqué que l`enfant est une copie double du parent, mais il y a quelques exceptions.

Dans la page 2, 3ème fonction de fourche s`exécute puis il exécute la deuxième fonction printf et le contrôle va transférer à la page 1. L`ID de processus renvoyé est du type pid_t, qui a été défini dans le fichier d`en-tête, sys/types. Ici, deux sorties sont possibles car le processus parent et le processus enfant sont exécutés simultanément. Ce processus utilisera ensuite la page nouvellement copiée plutôt que celle partagée dans toutes les références futures. Appelez la fourche () à nouveau et vous avez 4. Sous les systèmes d`exploitation UNIX et UNIX, les processus parent et enfant peuvent se distinguer en examinant la valeur de retour de l`appel système fork (). Mais vfork ne prescrit pas de copie sur écriture. La fourche d`appel système () est utilisée pour créer des processus. La métaphore de Spawn (Computing) a été ultérieurement adoptée dans les systèmes d`exploitation Microsoft (1993). Toutefois, les valeurs modifiées dans l`espace d`adressage de l`un des processus ne sont pas affectées dans un autre processus dont l`un est parent et l`autre est enfant.

L`autre processus (celui qui n`a pas modifié la page partagée) continue à utiliser la copie originale de la page (qui n`est désormais plus partagée). Voyez ceci pour la solution. Chaque instance en cours d`exécution d`un programme est connue comme un processus. Salut, vous avez écrit: «après la fourchette, si l`enfant va courir en premier ou parent dépend du planificateur. La valeur de retour de fork () est pid_t (définie dans le fichier d`en-tête de bibliothèque < sys/types. Valeur positive: renvoyée au parent ou à l`appelant. Ceci est indiqué dans la documentation fournie ci-dessus. L`utilisation de vfork () pour n`importe quel but excepté comme prélude à un appel immédiat à une fonction de la famille exec, ou à _ Exit (), n`est pas conseillée. Puis exécute 3ème fonction de fourche qui créent la 7e page à partir de laquelle il a 1 fonction printf et l`exécute (qui est de la 7e) et revenir à main, puis il printf dernière fonction printf qui est de 8e en nombre…….

张贴在未分类