Système d'Exploitation II

Programming, Operating Systems, Concurrency · exam

Voir tous les documents en systèmes d'exploitation et cloud

NOM :

PRENOM :

GROUPE :

CIN :

CODE :

SIG. ETUDIANT :

SIG. SURVEILLANT :

CODE :

NOTE :

ème

2

année Li en e LFIG, TSI, ECOM

Système d'Exploitation II

Examen, Mai 2017, 120 min

ESEN - Université de la Manouba

Amine DHRAIEF

Cet examen omporte 7 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 points)

1.

(a) (1 point) Je suis une fragmentation qui a(cid:27)e te les systèmes de gestion de mémoire

segmentée ?

(b) (1 point) Je suis un algorithme qui alloue un espa e libre de la mémoire à un

pro essus donné. Je par ourt toute la liste et re her he le plus grand espa e pouvant

ontenir e pro essus ?

(a)

( ) (1 point) Je permet de modéliser des pro essus qui entrent en on urren e pour

un a ès ex lusif à un nombre limité de ressour es, omme le as des périphériques

d'E/S.

(b)

(d) (1 point) Je suis un mé anisme de pthread qui est utilisé onjointement ave les

mutex. Il permet à un thread de se bloquer en attendant l'o urren e d'un événe-

ment parti ulier.

( )

(e) (1 point) Je suis un pro essus qui s'est a hevé tout en disposant toujours d'un

identi(cid:28)ant de pro essus (PID).

(d)

(e)

Page 1 sur 6

Points obtenus :

sur un total de 5 points

NE RIEN ÉCRIRE ICI

Pro essus et Threads (5 points)

2. Considérer le ode suivant :

i n t

i = 0 ;

v o i d r e e r ( )

{ f o r k ( ) ; p r i n t f ( " i=%d \ n " , i ) ;

Publicité

i= i + 1 ;

f o r k ( ) ; }

i n t m a in ( )

{ r e e r ( ) ; p r i n t f ( " i= %d \ n " , i ) ; e x i t ( 0 ) ; }

Supposer que tous les appels systèmes utilisés ne retournent pas d'erreur.

(a) (1 point) Donner le nombre de pro essus réés par la fon tion main i-dessus ainsi

que l'arbores en e de es pro essus. Indiquer, sur ette arbores en e, les valeurs de

i a(cid:30) hées à l'é ran par ha un des pro essus réés.

(b) (1 point) Supposer que la réation de pro essus est rempla ée par la réation de

threads ( haque fork est rempla é par pthread_ reate. Les threads réés réalisent

des traitements lo aux ( al uls) et se terminent par un appel à thread_exit. Quel

est le nombre de threads réés ?

( ) (1 point) Le thread prin ipal devrait-il attendre la (cid:28)n de tous les threads réés

avant l'appel à exit(0) ? Justi(cid:28)er votre réponse.

3. (2 points) Considérer le ode suivant :

i n t m y g l o b a l = 0 ;

v o i d ∗ t h r e a d _ f u n t i o n ( v o i d ∗ a r g ) {

i n t

i , j ;

f o r

(

i = 0 ;

i < 2 0 ;

i++ ) {

j=m y g l o b a l ;

j= j + 1 ;

p r i n t f ( " . " ) ;

Page 2 sur 6

Points obtenus :

sur un total de 5 points

NOM :

PRENOM :

GROUPE :

CIN :

CODE :

SIG. ETUDIANT :

SIG. SURVEILLANT :

CODE :

f f l u s h ( s t d o u t ) ;

s l e e p ( 1 ) ;

m y g l o b a l= j ; }

r e t u r n NULL ; }

i n t m a in ( v o i d ) {

p t h r e a d _ t m y t h r e a d ;

i n t

i ;

i f

( p t h r e a d _ r e a t e ( &m y t h r e a d , NULL ,

t h r e a d _ f u n t i o n , NULL ) ) {

Publicité

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 ) ; }

f o r

( i = 0 ;

i < 2 0 ; i ++) {

m y g l o b a l=m y g l o b a l + 1 ;

p r i n t f ( " o " ) ;

f f l u s h ( s t d o u t ) ;

s l e e p ( 1 ) ; }

i f

( p t h r e a d _ j o i n ( m y t h r e a d , NULL )

) {

f p r i n t f ( s t d e r r , " E r e u r d a n s

j o i n . " ) ;

e x i t (EXIT_FAILURE ) ; }

p r i n t f ( " \ n m y g l o b a l = %d \ n " , m y g l o b a l ) ;

e x i t ( 0 ) ; }

Donner le résultat de l'exé ution de e programme.

Con urren e et syn hronisation des pro essus (5 points)

4. Soit les odes suivants.

S em a p h o r e S = 1 ;

Code 1 (cid:21) initialisation

Page 3 sur 6

Points obtenus :

sur un total de 0 points

NE RIEN ÉCRIRE ICI

Code 2 (cid:21) Pro essus A

P r o e s s A ( )

Code 3 (cid:21) Pro essus B

{

P r o e s s B ( )

a ;

{

P ( S ) ;

P ( S ) ;

b ;

d ;

;

V( S ) ;

V( S )

}

}

(a) (1 point) Donner les di(cid:27)érents ordres d'exé ution des instru tions atomiques a, b,

c et d des pro essus A et B.

(b) (1 point) Supposer que le sémaphore S est initialisé à 0. Donner les di(cid:27)érents ordres

d'exé ution des instru tions atomiques des pro essus A et B

5. Considérer les pro essus P1 et P2 présentés par les odes i-dessous. P1 et P2 partagent

la variable verrou. Le signal SIGCONT permet de débloquer un pro essus si e dernier

est bloqué. Dans le as ontraire, le signal est tout simplement ignoré

Publicité

i n t v e r r o u = 0 ;

Code 4 (cid:21) initialisation

Code 5 (cid:21) Pro essus 1

Code 6 (cid:21) Pro essus 2

P r o e s s P1 ( )

P r o e s s P2 ( )

{

{

w h i l e ( v e r r o u ! = 0 ) p a u s e ( ) ;

w h i l e ( v e r r o u ! = 0 ) p a u s e ( ) ;

v e r r o u = 1 ;

v e r r o u = 1 ;

SC ( ) ;

SC ( ) ;

v e r r o u = 0 ;

v e r r o u = 0 ;

k i l l

( P2 , SIGCONT ) ;

k i l l

( P1 , SIGCONT ) ;

}

}

(a) (1 point) Les pro essus P1 et P2 peuvent-ils se retrouver en se tion ritique (exé-

Page 4 sur 6

Points obtenus :

sur un total de 3 points

NOM :

PRENOM :

GROUPE :

CIN :

CODE :

SIG. ETUDIANT :

SIG. SURVEILLANT :

CODE :

uter la fon tion SC()) en même temps ? Justi(cid:28)er votre réponse.

(b) (1 point) Est- e que l'un des deux pro essus peut se retrouver en pause pour tou-

jours ? Justi(cid:28)er votre réponse.

6. (1 point) On onsidère 3 blo s d'instru tions, I1 à I3. On pla e haque blo d'instru tion

dans un pro essus distin t P1 à P3.

Pro ess P1 { I1; }

Pro ess P2 { I2; }

Pro ess P3 { I3; }

Soit le graphe de pré éden e suivant : P 1 → P 2 → P 3 Compléter le ode i-dessous

en utilisant des sémaphores pour syn hroniser les pro essus de manière à respe ter les

ontraintes du graphe.

Code 7 (cid:21) Graphe de pré éden e 2

PROGRAM P1P2P3 ; \ \

v a r

. . . . . . . . . . . .

Publicité

s em a p h o r e i n i t

. . . . . . . . . . . ;

P r o e s s P1 { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }

P r o e s s P2 { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }

P r o e s s P3 { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }

Gestion de la mémoire (5 points)

7. Vous êtes re ruté dans l'industrie automobile. Votre mission prin ipale est de mettre

en pla e un système de gestion de mémoire de l'ordinateur de bords des véhi ules. Cet

ordinateur est équipé d'un pro essur 64 bits, de 4 Go de RAM et d'un disque dur SSD

de 64 Go. Plusieurs alternatives de gestion de mémoire se présentent à vous.

Une première alternative est de mettre en pla e une mémoire paginée. Vous hoisissez

des pages de 4 Ko et une adresse virtuelle sur 64 bits.

Page 5 sur 6

Points obtenus :

sur un total de 2 points

NE RIEN ÉCRIRE ICI

(a) (1 point) Combien de bits de l'adresse physique spé i(cid:28)ent le adre de page ?

(b) (1 point) Chaque entrée de la table de pages ontient, en plus du numéro de adre

de page, 1 bit de présen e (P), 1 bit pour son référen ement (R) et 1 bit pour sa

modi(cid:28) ation (M). Cal uler la taille de la table des pages du système ainsi on(cid:28)guré.

( ) (1 point) Re ommandez-vous d'adopter ette appro he pour l'OS de l'ordinateur

de bords des véhi ules ? Justi(cid:28)er votre réponse.

Vous dé idez de mettre en pla e une mémoire paginée à plusieurs niveaux tout en gardant

la même taille de page.

(a) (1 point) Le nombre maximal de pages de l'espa e virtuel dépend-il de la répartition

des bits restants sur les autres hamps ? Justi(cid:28)er votre réponse en al ulant le

nombre maximal de page de l'espa e virtuel.

(b) (1 point) Citer un avantage de la mémoire paginée à plusieurs niveaux par rapport

à la pagination simple.

Page:

1

2

4

5

6

Total

Points:

5

5

3

2

5

20

S ore:

Page 6 sur 6

Fin de l'Examen