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