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 ) ;
Publicité
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.
Publicité
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 :
Publicité
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
Publicité
(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