TP1 Processus
Télécharger le TP1 Processus en pdf
Page 1 : Systèmes d’exploitation CY Tech – Departement Informatique 1/3 TP - Processus ING1 Informatique Apprentissage Année 2025–2026 La fonction fork permet de dupliquer un processus existant afin d’accéder à la program- mation parallèle. Il existe tout un tas d’autres techniques pour faire ceci, mais dans le cadre de ce cours nous nous intéresserons uniquement à la fonction fork et ses utilisations. Premier contact Écrire un programme qui affiche les information suivantes associées à un processus : — Le numéro du processus pid — le numéro du père du processus ppid — l’UID réel du processus uid — l’UID effectif du processus euid — le GID réel du processus gid — le GID effectif du processus egid Un exemple d’exécution est : . / a . out Je s u i s l e processus de pid : 20011 Mon père est l e processus de pid : 5411 Mon uid : 322 Mon euid : 322 Mon gid : 100 Mon egid : 100 □
Page 2 : Systèmes d’exploitation CY Tech – Departement Informatique 2/3 Écrire un programme qui crée un processus fils et qui affiche les informations pid et ppid de chaque processus créé ainsi que la valeur retournée par fork. Un exemple d’exécution est : . / a . out Valeur de f o r k = 22723 Je s u i s l e processus père : pid =22722 , ppid =5411 , pid f i l s = 22723 Valeur de f o r k = 0 Je s u i s l e processus f i l s : pid =22723 , ppid 22722 — Que constatez vous concernant la valeur du fork? — Est-il possible d’avoir deux morceaux de codes exécutés qu’une seule fois ? □ Reprendre l’exercice 1 et affichez les informations relatives aux processus père et fils comme suit : / a . out Valeur f o r k = 0 Je s u i s l e processus de pid : 22851 Mon père est l e processus de pid : 22850 Mon uid : 322 Mon euid : 322 Mon gid : 100 Mon egid : 100 Valeur f o r k = 22851 Je s u i s l e processus de pid : 22850 Mon père est l e processus de pid : 5411 Mon uid : 322 Mon euid : 322 Mon gid : 100 Mon egid : 100 □
Page 3 : Systèmes d’exploitation CY Tech – Departement Informatique 3/3 Tel père, tel fils Dans un programme qui utilise la fonction fork, vous créerez des variables de types primitifs int, float, etc.. Vous les initialisez avant l’utilisation de fork, puis vous les affichez dans le code du père et dans le code du fils. Pour chaque variable, vous afficherez aussi l’adresse de la variable ainsi que sa valeur. Que constatez vous par rapport aux valeurs des variables ? □ Écrivez un programme C qui crée un fils. Chaque processus doit afficher son PID à l’écran. Ensuite, le père doit attendre la terminaison du fils. Lorsque le fils termine, il enverra un code de retour. Le père devra récupérer cette code et l’affichage à l’écran, ainsi que le pid du fils qui vient de se terminer. □ Dans un programme qui utilise la fonction fork, vous créerez quatre fils à partir du même père. Mettez le père en attente avec wait ou waitpid jusqu’à la terminaison des fils et, ensuite, continuez l’exécution du père. — Quelle est la différence entre wait et waitpid? □


