NOM : PRENOM : GROUPE : CIN :
CODE : SIG. ETUDIANT : SIG. SURVEILLANT :
CODE :
NOTE :
Syst mes d'Exploitation I I
me
2
ann e LFIG-TSI-ECOM
Devoir Surveill , Mars 2018, 60 min
ESEN - Universit de la Manouba
Amine DHRAIEF
Cet examen omporte 6 questions, pour un total de 20 points. La lart de votre
expression et la qualit de votre - riture sont deux rit res pris en ompte dans la
notation.
Qui suis-je ? (5 p oints)
- (a) (1 p oint) Je p ermets - un syst me d'exploitation d'avoir simultan ment des he
mins d'ex ution multiples au sein d'un pro essus unique.
(a) Le Multithreading ou les
(b) (1 p oint) Je suis un typ e de parall lisme o des instru tions di rentes sont ex u
t es simultan ment.
(b) Task parall lisme ou par
( ) (1 p oint) Je suis un app el syst me qui p ermet de mettre n - un thread.
( ) pthread_exit
(d) (1 p oint) Je suis une biblioth que - in lure p our utiliser le mutithreading.
(d) pthread.h
(e) (1 p oint) Je suis un app el syst me qui p ermet d'obtenir l'identit du thread app e
lant.
(e) pthread_self
Page 1 sur 7 Points obtenus : sur un total de 5 p oints
NE RIEN CRIRE ICI
Multithreading (8 p oints)
- (2 p oints) Pour lan er en parall le plusieurs traitements d'une m me appli ation vous
avez le hoix entre les app els syst mes fork() et pthread_ reate(). Laquelle des deux
p ossibilit s hoisir ? Justi er votre r p onse.
Solution: pthread_ reate ar : moins o teuse + partage de ressour e + pas de
ommutation de ontexte + plus rapide
- (6 p oints) Je souhaite ex uter mon - de et obtenir l'a hage i-dessous :
Thread numero 0
Publicité
Thread numero 1
Thread numero 2
Thread numero 3
Thread numero 4
Thread Main
Toutefois, je n'arrive pas - le ompiler. Aidez-moi - orriger les 6 erreurs signal es par
mon ompilateur. Corriger les erreurs sur le - de i-dessous.
Page 2 sur 7 Points obtenus : sur un total de 8 p oints
NOM : PRENOM : GROUPE : CIN :
CODE : SIG. ETUDIANT : SIG. SURVEILLANT :
CODE :
Listing 1 - Co de erron
i n l u d e < s t d i - . h>
i n l u d e < s t d l i b . h>
i n l u d e < u n i s t d . h>
d e f i n e NB_THREADS 5
i n t m a i n ( v - i d )
{
p t h r e a d _ t t h r [ NB_THREADS ℄ ;
i n t i ;
f - r ( i = 0 ; i < NB_THREADS ; i ++) {
i f ( p t h r e a d _ r e a t e ( & t h r [ i ℄, NULL, f - n t i - n _ t h r e a d, i ) ! = 0 ) {
f p r i n t f ( s t d e r r, " E r r e u r d a n s p t h r e a d _ r e a t e \ n " ) ;
e x i t ( EXIT_FAILURE ) ; }
s l e e p ( 1 ) ; }
f - r ( i = 0 ; i < NB_THREADS ; i ++) {
p t h r e a d _ j - i n ( t h r [ i ℄ ) ; }
f p r i n t f ( s t d e r r, " T h r e a d M a i n \ n " ) ;
r e t u r n 0 ;
}
i n t f - n t i - n _ t h r e a d ( v - i d ∗ a r g )
{
i n t num = ( i n t ∗ ) a r g ;
f p r i n t f ( s t d e r r, " T h r e a d n u m e r - %d \ n ", num ) ;
p t h r e a d _ e x i t ( NULL ) ;
}
Page 3 sur 7 Points obtenus : sur un total de 0 p oints
NE RIEN CRIRE ICI
Publicité
Solution: 1 - in lude
2- void - fon tion_thread(void - arg) ;
3- int num = ((int)arg) ;
4- pthread_join(thr[i℄,NULL)
5- if (pthread_ reate(&thr[i℄, NULL, fon tion_thread, (void*)&i) != 0)
6- void - fon tion_thread(void - arg)
Page 4 sur 7 Points obtenus : sur un total de 0 p oints
NOM : PRENOM : GROUPE : CIN :
CODE : SIG. ETUDIANT : SIG. SURVEILLANT :
CODE :
Con urren e et syn hronisation (7 p oints)
- (1 p oint) Comparer les algorithmes d'ex lusion mutuelle par attente a tive et les algo
rithmes bas s sur le sommeil et l'a tivation.
- (5 p oints) On onsid re 5 blo s d'instru tions, I1 - I5. On pla e haque blo d'instru tion
dans un pro essus distin t P1 - P5.
Pro ess P1 { I1; }
Pro ess P2 { I2; }
Pro ess P3 { I3; }
Pro ess P4 { I4; }
Pro ess P4 { I5; }
Soit le graphe de pr den e suivant :
Compl ter le - de i-dessous en utilisant des s maphores p our syn hroniser les pro essus
de mani re - resp e ter les ontraintes du graphe.
Listing 2 - Graphe de pr den e 2
PROGRAM P 1 P 2 P 3 P 4 P 5 ; \ \
v a r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s e m a p h - r e i n i t . . . . . . . ;
P r - e s s P 1 { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
P r - e s s P 2 { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
P r - e s s P 3 { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
P r - e s s P 4 { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
P r - e s s P 4 { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
Page 5 sur 7 Points obtenus : sur un total de 6 p oints
Solution:
NE RIEN CRIRE ICI
Listing 3 - Graphe de pr den e
PROGRAM P 1 P 2 P 3 ; \ \
v a r S 1, S 2, S 3 s e m a p h - r e i n i t 0 ;
P r - e s s P 1 { I 1 ; V ( S 1 ) ; V ( S 2 ) }
Publicité
P r - e s s P 2 { P ( S 1 ) ; I 2 ; V ( S 3 ) ; }
P r - e s s P 3 { P ( S 2 ) ; I 3 ; V ( S 3 ) }
P r - e s s P 4 { P ( S 3 ) ; P ( S 3 ) ; I 3 ; }
- Soit les - des suivants.
Listing 4 - initialisation
S e m a p h - r e S = 1 ;
Listing 5 - Pro essus A
P r - e s s A ( )
{
Listing 6 - Pro essus B
P ( S ) ;
a ;
V ( S ) ;
P ( S ) ;
P ( S ) ;
b ;
V ( S ) ;
V ( S ) ;
P r - e s s B ( )
{
P ( S ) ;
;
d ;
V ( S ) ;
}
}
(a) (1 p oint) Donner les di rents ordres d'ex ution des instru tions atomiques a, b,
Page 6 sur 7 Points obtenus : sur un total de 1 p oints
NOM : PRENOM : GROUPE : CIN :
CODE : SIG. ETUDIANT : SIG. SURVEILLANT :
CODE :
c et d des pro essus A et B.
Solution: a
-d-a
Page: 1 2 5 6 Total
Points: 5 8 6 1 20
S ore:
Page 7 sur 7 Fin de l'Examen