ExamSys 1master IL 2017 2018corrige
ExamSys 1master IL 2017 2018corrige
ExamSys 1master IL 2017 2018corrige
Département Informatique
Filière : 1 ère Année Master - Ingénierie des Logiciels
Examen semestriel
Exercice 1 : (7 points)
On considère le système de gestion de fichiers de Unix. La taille d'un bloc de données est de 2 ko
(kilo-octets). Chaque pointeur (numéro de bloc) occupe 4 octets. Chaque inode comprend 10 liens
directs, 1 lien indirect simple, 1 lien indirect double et 1 lien indirect triple.
2/ Combien de blocs de données et de blocs de liens sont nécessaires pour représenter un fichier
ayant une taille de 600 Ko ? Justifiez avec un schéma.
Réponse :
Nombre de blocs de données : 300
(0.5 point)
Nombre de blocs de liens : 1
(0.5 point)
Justification :
Chaque bloc occupe 2 Ko. Pour sauvegarder les données d'un fichier de 600 Ko, il faut donc 600/2 soit 300
blocs.
Chaque bloc de liens contient 2048/4, soit 512 liens.
page 1
(0.5 point)
Pour sauvegarder les données d'un fichier de 500.000 Ko, il faut 500.000/2 soit 250.000 blocs.
page 2
(0.5 point)
4/ Quelle est la taille minimale que doit avoir un fichier pour qu'on soit obligé d'utiliser le lien
indirect triple ?. Justifiez.
Réponse :
Taille minimale que doit avoir le fichier : 537.939.969 octets.
(0.5 point)
Justification :
Pour qu'on soit obligé d'utiliser le lien indirect triple, il faut que les liens directs, indirects simples et doubles
soient saturés. Cela donne :
10 liens directs → 10 blocs de données
512 liens indirects simple → 512 blocs de données
512 x 512 liens indirects double → 262.144 blocs de données
Pour qu'on soit obligé d'utiliser le lien indirect triple, la taille du fichier doit donc être au minimum égale à :
(1 point)
page 3
5/ Quelle est la taille maximale d'un fichier qu'on peut représenter avec cette organisation ? Quel
serait le nombre de blocs de données et de blocs de liens ?. Justifiez.
Réponse :
Taille max du fichier : 268.960.788 Ko
Nombre de bloc de données : 134.480.394
Nombre de blocs de liens : 263.171
(0.5 point)
Justification :
La taille max d'un fichier est obtenue lorsque tous les liens (directs et indirects) sont saturés. Cela donne :
10 liens directs → 10 blocs de données
512 liens indirects simple → 512 blocs de données
512 x 512 liens indirects double → 262.144 blocs de données
512 x 512 x 512 liens indirects triples → 134.217.728 blocs de données
(1 point)
Exercice 2 : (7 points)
Résoudre le problème des Lecteurs-Rédacteurs en utilisant les moniteurs de Hoare et en donnant une
priorité aux rédacteurs.
Réponse :
Lire Ecrire
Fichier.FinLire Fichier.FinEcrire
Fin. Fin.
page 4
Moniteur = Fichier
Var Ecrire : Boolean; //Variable logique pour indiquer si le fichier est en écriture
Lire : Boolean ; //Variable logique pour indiquer si le fichier est en lecture
NbLecteur : Integer; //Variable entière pour compter le nombre de lecteurs
NbRedacteur : Integer ; //Variable entière pour compter le nombre de rédacteurs
CEcrire , Clire : Condition ; //Variables conditionnelles pour bloquer les rédacteurs et les lecteurs.
End ;
End
Begin /* Initialisation */
Ecrire :=False ; Lire := False ;
NBLecteur := 0 ; NBRedacteur :=0
End.
(06 Points)
Exercice 3 : (6 points)
Ecrire en java le code de deux threads simultanés qui affichent chacun les entiers de 1 à 100.
L'affichage doit être alterné, comme suit :
Thread 1 : 1
Thread 2 : 1
page 5
Thread 1 : 2
Thread 2 : 2
Thread 1 : 3
Thread 2 : 3
Thread 1 : 4
Thread 2 : 4
.....
Réponse :
package java_threads_afficheur;
/**
*
* @Dr Mourad LOUKAM exam, January 2018
*/
import java.util.concurrent.Semaphore;
page 6
public static void main(String[] args) {
// On instancie les threads
Thread1 th1 = new Thread1 ();
Thread2 th2 = new Thread2 ();
(06 Points)
page 7