Systèmes d'exploitation I - 1
année Li en e
ère
Travaux Pratiques 3 : la gestion des pro essus
ESEN - Université de la Manouba
Amine DHRAIEF
1. Pré isez le nombre de pro essus réer par les programmes i-dessous et dessinez l'arbo-
res en e des pro essus orrespondante en justi(cid:28)ant votre réponse
∗
∗
/
Code 1
/
i n t m a in ( ) {
f o r k ( ) ;
f o r k ( ) ;
f o r k ( ) ;
}
∗
∗
/
Code 2
/
i n t m a in ( ) {
i f
Publicité
( f o r k ( ) > 0 )
f o r k ( ) ;
}
}
∗
∗
/
Code 3
/
i n t m a in ( ) {
i n t p t = 0 ;
wh i l e ( p t < 3 ) {
i f
( f o r k ( ) > 0 )
p t ++;
e l s e
p t = 3 ;
}
2. Remplissez les hamps (1),(2) dans le ode i-dessous pour que :
(a) le pro essus père a(cid:30) he son PID ainsi que le PID de son (cid:28)ls.
(b) le pro essus (cid:28)ls a(cid:30) he son PID ainsi que le PID de son père.
i n t m a in ( )
{
p i d_ t p i d ;
p i d = f o r k ( ) ;
Publicité
i f
( p i d == 0 )
{
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
; /
( 1 )
/
∗
∗
}
e l s e
{
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
; /
( 2 )
/
∗
∗
}
r e tu rn 0 ;
}
3. Combien de pro essus engendre l'exé ution du programme C suivant ? En donner l'ar-
bores en e ?
i n t m a in ( vo id ) {
f o r k ( ) && (
Publicité
f o r k ( )
| |
f o r k ( )
) ;
s l e e p ( 2 ) ;
r e tu rn 0 ;
}
Page 2
4. Qu'est e qu'un pro essus zombie ? en dé rivant les grandes lignes du programme, expli-
quez omment réer un pro essus zombie.
5. Qu'est e qu'un pro essus orphelin ? Une fois orphelin, à qui est-il ratta hé ? Dé rire les
grandes lignes d'un programme permettant de réer un orphelin.
6. Dans les programmes suivants, ra jouter les instru tions wait() et les éventuels tests
onditionnant l'exé ution de es dernières de sorte que haque pro essus enfant informe
orre tement son parent de sa (cid:28)n d'exé ution.
i n t m a in ( ) {
i n t r e s u l t , a = 0 ;
r e s u l t = f o r k ( ) ;
i f
( r e s u l t > 0 )
a = 5 ;
}
i n t m a in ( ) {
i n t r e s u l t 1 ,
r e s u l t 2 ,
Publicité
r e s u l t 3 ;
r e s u l t 1 = f o r k ( ) ;
r e s u l t 2 = f o r k ( ) ;
r e s u l t 3 = f o r k ( ) ;
}
Page 3
i n t m a in ( ) {
i n t r e s u l t 1 ,
r e s u l t 2 ,
r e s u l t 3 ;
r e s u l t 1 = f o r k ( ) ;
i f
( r e s u l t 1 ==0) {
r e s u l t 2 = f o r k ( ) ;
i f
( r e s u l t 2 == 0 ) {
r e s u l t 3 = f o r k ( ) ;
}
}
}
Page 4