Systèmes d’Exploitation : TD3 processus et parallelisme
Télécharger PDFCorrection TD3 : Processus et parallélisme en systèmes d'exploitation
Exercice 1 : Création et synchronisation de processus fils
Écrire un programme en langage C qui crée deux processus fils, l'un affichant les entiers de 1 à 50 et l'autre de 51 à 100.
Modifier ensuite ce programme pour obtenir un affichage séquentiel : 1 2 3 ...100.
Exercice 2 : Utilisation de la commande execvp
Écrire un programme en C permettant d'exécuter une commande système avec ses arguments.
Exemples d'utilisation :
- monexec ls -l /etc/httpd/conf.d/
total 36-rw-r--r-- 1 root root 3424 Sep 2 2002 auth_pgsql.conf-rw-r--r-- 1 root root 814 Sep 3 2002 perl.conf-rw-r--r-- 1 root root 459 Sep 3 2002 php.conf-rw-r--r-- 1 root root 988 Sep 2 2002 python.conf-rw-r--r-- 1 root root 180 Sep 4 2002 README-rw-r--r-- 1 root root 251 Aug 6 2002 squirrelmail.conf-rw-r--r-- 1 root root 11140 Sep 4 2002 ssl.conf
- monexec echo a b
a b
- monexec toto titi
Usage: monexec commande [arg] [arg] ...
- monexec toto titi (commande inexistante)
execvp: No such file or directory
Exercice 3 : Simultanéité vs. séquentialité
1) Écrire un programme C équivalent à la commande shell suivante :
who & ps & ls -l
2) Écrire un programme C équivalent à la commande shell suivante :
who ; ps ; ls -l
Questions fréquentes
Qu'est-ce qu'un processus fils en C ?
Un processus fils est un programme créé par un autre processus (le père) en utilisant la fonction fork(). Il s'exécute indépendamment et peut partager des ressources avec son processus parent.
À quoi sert la fonction execvp() ?
La fonction execvp() permet de remplacer le processus actuel par une nouvelle commande système, en recherchant le nom de la commande dans le chemin (PATH) et en exécutant ses arguments.
Quelle est la différence entre & et ; en shell ?
Le symbole & permet d'exécuter des commandes en parallèle, tandis que le symbole ; les exécute séquentiellement, une après l'autre.