Devoir Surveillé Systèmes d'Exploitation II

Page 1 sur 7Lecteur de document UniversityLib

Devoir Surveillé Systèmes d'Exploitation II

Programming, Operating Systems, Multithreading · exam

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)

  1. (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)

  1. (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

  1. (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. (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.

  1. (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 ; }

  1. 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