Académique Documents
Professionnel Documents
Culture Documents
Systèmes d’exploitation 2
TD n 1 : Rappel sur l’ordonnancement des processus et introduction à la
synchronisation
Systèmes d’exploitation 2
TD n 1 : Rappel sur l’ordonnancement des processus et introduction à la
synchronisation
A 0,000 3
B 1,001 6
C 4,001 4
D 6,001 2
1
TD1 : Rappel sur l’ordonnancement des processus
Le créateur d'un nouveau processus est appelé le père et le nouveau processus, le fils.
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
Comme vous le voyez, cette fonction renverra une variable du type pid_t (ce type est
contenu dans le fichier sys/types.h) et ne prend aucun argument. Si la fonction
échoue, la valeur renvoyée sera -1, aucun fils ne sera créé et errno contiendra le code
de l'erreur. Par contre, si la fonction réussit, la valeur renvoyée sera différente dans le
cas du fils et du père.
Dans le cas du fils, la fonction fork renverra 0, par contre, dans le cas du père, la
fonction renverra le PID du fils.
Applications :
- Proposer un programme en C utilisant la primitive fork, qui affiche « Je suis le
processus père » s’il s’agit du père, et « je suis le processus fils » s’il s’agit du
fils.
- Soit les deux extraits de programmes suivants :
fork( ) ; for (int i = 0 ; i<3 ; i++){
fork( ) ; fork( ) ;
fork( ) ; }
- Combien obtient-on de processus à la fin ? Et quel est l’effet de fork sur les
variables locales et globales ?
2