Système d’Exploitation II Exam

Operating Systems, Concurrency, Processes · exam

Browse all systèmes d'exploitation et cloud documents

NOM :

PRENOM :

GROUPE :

CIN :

CODE :

SIG. ETUDIANT :

SIG. SURVEILLANT :

CODE :

NOTE :

2Łme annØe Licence LFIG, TSI, ECOM

SystŁme d’Exploitation II

Rattrapage, Juin 2017, 120 min

ESEN - UniversitØ de la Manouba

Amine DHRAIEF

Cet examen comporte 7 questions, pour un total de 20 points. La clartØ de votre

expression et la qualitØ de votre Øcriture sont deux critŁres pris en compte dans la

notation.

Qui suis-je ? (5 points)

1.

(a) (1 point) Je suis une fragmentation qui a(cid:27)ecte les systŁmes de gestion de mØmoire

paginØe ?

(a) fragmentation interne

(b) (1 point) Je suis un algorithme qui alloue un espace libre de la mØmoire (cid:224) un

processus donnØ. Je parcourt toute la liste et recherche le plus petit espace pouvant

contenir ce processus ?

(c) (1 point) Je permet de modØliser des processus qui entrent en concurrence pour les

accŁs aux bases de donnØes.

(b) Best Fit

(c) Les lecteurs rØdacteurs

(d) (1 point) Je suis un mØcanisme de pthread qui est utilisØ conjointement avec les

mutex. Il permet (cid:224) un thread de se bloquer en attendant l’occurrence d’un ØvØne-

ment particulier.

(e) (1 point) Je suis un processus qui est toujours en exØcution alors que son pŁre s’est

terminØ.

(d) variable de condition

(e) processus orphelin

Page 1 sur 8

Points obtenus :

sur un total de 5 points

NE RIEN (cid:201)CRIRE ICI

Processus et Threads (5 points)

2. Dans cet exercice on suppose que les numØros des PIDs attribuØs aux processus sont

strictement croissant. Si un pŁre a un PID (n), son (cid:28)ls aura un PID (m) tel que (m > n).

Soit le code suivant :

i n t main ( v o i d )

{

pid_t pid1 , p id 2 ;

pid1 =0; pi d2 =0;

pid1=f o r k ( ) ;

pid2=f o r k ( ) ;

p r i n t f ( " Je s u i s %d , pid1=%d , pid2=%d\n " , g e t p i d ( ) , pid1 , pi d2 ) ;

Advertisement

r e t u r n 0 ;

}

(a) (1 point) Donner l’arborescence des processus crØØs par ce code.

Solution: P1 (cid:21)> P2 (cid:21)> P3

(cid:21)>P4

(b) (2 points) Proposer pour chaque processus crØØ son a(cid:30)chage (cid:224) l’Øcran. Nous rappe-

lons que les PIDs sont a(cid:30)chØs comme suit PID-P1, PID-P2,... PID-Pn. Par exemple,

le processus P8 (PID-P8) avec pid1= PID-P5 et pid2=PID-P3 aura pour a(cid:30)chage :

Page 2 sur 8

Points obtenus :

sur un total de 3 points

NOM :

PRENOM :

GROUPE :

CIN :

CODE :

SIG. ETUDIANT :

SIG. SURVEILLANT :

CODE :

Je suis PID-P8, pid1=PID-P5, pid2=PID3.

Solution: Je suis PID-P1 : pid1=PID-P2, pid2=PID-P3

Je suis PID-P2 : pid1=0, pid2=PID-P4

Je suis PID-P3 : pid1=PID-P2, pid2=0

Je suis PID-P4 : pid1=0, pid2=0

3. (2 points) Soit le code ci-dessous :

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

p r i n t f ( " H e l l o World : ) \n " ) ;

e x i t (EXIT_SUCCESS ) ;

}

i n t main ( v o i d ) {

pthread_t mythread ;

i f

( p t h r e a d _ c r e a t e ( &mythread , NULL,

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

f p r i n t f ( s t d e r r , " F a i l u r e 1 ?\n " ) ;

e x i t (EXIT_FAILURE ) ; }

p r i n t f ( " I have t o wait ? \n " ) ;

i f

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

) {

f p r i n t f ( s t d e r r , " F a i l u r e 2 ? " ) ;

e x i t (EXIT_FAILURE ) ;

}

Page 3 sur 8

Points obtenus :

sur un total de 2 points

NE RIEN (cid:201)CRIRE ICI

p r i n t f ( " Goodbye Cruel World : ( \ n " ) ;

r e t u r n 0 ;

}

Donner le rØsultat de l’exØcution de ce programme.

Advertisement

Solution: I have to wait ?

Hello World :)

Concurrence et synchronisation des processus (5 points)

4. Soit les codes suivants.

Semaphore S=2;

Code 1 (cid:21) initialisation

Code 2 (cid:21) Processus A

Code 3 (cid:21) Processus B

P r o c e s s A ( )

{

P( S ) ;

P( S )

a ;

b ;

V( S )

}

P r o c e s s B ( )

{

P( S ) ;

c ;

d ;

V( S ) ;

V( S )

}

(a) (1 point) Donner les di(cid:27)Ørents ordres d’exØcution des instructions atomiques a, b,

Page 4 sur 8

Points obtenus :

sur un total de 1 points

NOM :

PRENOM :

GROUPE :

CIN :

CODE :

SIG. ETUDIANT :

SIG. SURVEILLANT :

CODE :

c et d des processus A et B.

Solution: a b c d // c d a b//

(b) (1 point) Supposer que le sØmaphore S est initialisØ (cid:224) 1. A et B peuvent-ils se

bloquer mutuellement ? Justi(cid:28)er votre rØponse.

Solution: Oui car deux P(S) successives de A vont bloquer B.

(c) (1 point) En supposant que le sØmaphore S est initialisØ (cid:224) 1. Existe-t-il un scØnario

d’exØcution qui rØalise les quatre instructions atomiques ?

Solution: Oui c d a b

5. (2 points) On considŁre 4 blocs d’instructions, I1 (cid:224) I4. On place chaque bloc d’instruction

dans un processus distinct P1 (cid:224) P4.

Process P1 { I1; }

Process P2 { I2; }

Process P3 { I3; }

Process P4 { I4; }

Soit le graphe de prØcØdence suivant :

Advertisement

Page 5 sur 8

Points obtenus :

sur un total de 4 points

NE RIEN (cid:201)CRIRE ICI

ComplØter le code ci-dessous en utilisant des sØmaphores pour synchroniser les processus

de maniŁre (cid:224) respecter les contraintes du graphe.

PROGRAM P1P2P3P4 ; \ \

Code 4 (cid:21) Graphe de prØcØdence 2

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

semaphore i n i t

var

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

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

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

P r o c e s s P4{ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }

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

Solution:

PROGRAM P1P2P3 ; \ \

Code 5 (cid:21) Graphe de prØcØdence

semaphore i n i t 0 ;

var S1 , S2 , S3

P r o c e s s P1{ I 1 ; V( S1 ) ; V( S2 ) }

P r o c e s s P2{ P( S1 ) ;

P r o c e s s P3{ P( S2 ) ;

P r o c e s s P4{ P( S3 ) ; P( S3 ) ;

I 2 ; V( S3 ) ; }

I 3 ; V( S3 ) }

I 3 ; }

Page 6 sur 8

Points obtenus :

sur un total de 0 points

NOM :

PRENOM :

GROUPE :

CIN :

CODE :

SIG. ETUDIANT :

SIG. SURVEILLANT :

CODE :

Gestion de la mØmoire (5 points)

6. On considŁre un systŁme avec une mØmoire virtuelle segmentØe paginØe oø la taille

d’une page est de 4Ko et une mØmoire physique de 64Ko. L’espace d’adressage d’un

processus P est composØ de trois segments S1, S2 et S3 de taille, respectivement 16Ko,

8Ko et 4Ko. (cid:192) un moment donnØ, pour le processus P, les pages 2 et 3 du segment

S1, la page 2 du segment S2 et la page 1 du segment S3 sont chargØes en mØmoire

physique, respectivement dans les cadres 2, 0, 9, 12. Pour une donnØe situØe dans l’espace

d’adressage du processus P (cid:224) l’adresse dØcimale 8212, indiquer

(a) (1/2 point) le segment

Solution: segment = S1

(b) (1/2 point) le numØro de page dans le segment

Solution: page = 3

Advertisement

(c) (1/2 point) le dØplacement dans la page

Solution: dØplacement = 20

(d) (1/2 point) le numØro de cadre

Solution: cadre = 0

(e) (1/2 point) le dØplacement dans le cadre

Solution: dØplacement = 20

(f) (1/2 point) l’adresse physique (en dØcimal)

Solution: L’adresse physique est donc 20 en dØcimal

7. On considŁre un systŁme de pagination (cid:224) trois niveaux dans lequel les adresses (virtuelles

et physiques) sont codØes sur 32 bits. La taille d’une page est de 2 Ko. La taille de chaque

table de pages, peu importe son niveau, est Øgale (cid:224) 512 octets. Chaque entrØe d’une table

Page 7 sur 8

Points obtenus :

sur un total de 3 points

NE RIEN (cid:201)CRIRE ICI

de pages est composØe de 4 octets. Le premier octet est rØservØ aux bits de contr(cid:244)le (bit

de prØsence, bit de rØfØrence, bit de modi(cid:28)cation, bits de protection, etc.). Les octets

restants servent (cid:224) localiser la page ou la table de pages de niveau suivant.

(a) (1/2 point) Quelle est la taille maximale, en nombre de pages, de l’espace virtuel

d’un processus, supportØ par un tel systŁme ?

Solution: 232/211 = 221 = 2 Mi pages. Chaque table a 512/4 = 128 entrØes

(b) (1/2 point) Quel est le nombre maximal de tables de pages (de niveaux 1, 2 et 3)

d’un processus ?

Solution: Le nombre maximal de tables de pages : 1 + 27 + 27 ∗ 27 = 1 + 128 +

128 ∗ 128

(c) (1 point) Donnez le format d’une adresse virtuelle.

Solution: 7 bits (entrØe dans la table du 1er niveau) + 7 bits (entrØe dans la

table du 2nd niveau) + 7 bits (entrØe dans la table du 3iŁme niveau) + 11 bits

(pour le dØplacement dans une page).

1

5

2

3

3

2

4

1

5

4

7

3

8

2

Total

20

Page:

Points:

Score:

Page 8 sur 8

Fin de l’Examen