0% ont trouvé ce document utile (0 vote)
43 vues5 pages

Emd 24

Transféré par

Ryan
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
43 vues5 pages

Emd 24

Transféré par

Ryan
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

USTHB Janvier M1 – IL/RSD/HPC17

Faculté d'Informatique Systèmes d'exploitation

EMD Systèmes d'exploitation


Nom : Prénom :

Exercice 1 : (4 pts)

Sous Unix, un fichier est représenté de façon interne par son i-node. Soit un fichier « F » d’une taille de 10 MØ
Nous supposons que la taille d'un bloc est de 1024 octets et que le numéro du bloc est représenté sur 4 Ø.
Pour chaque question, cocher la bonne réponse tout en justifiant vos réponses.

1) quel est le nombre de bloc de données nécessaires pour sauvegarder le fichier « F »?


a) 10240 BD  b) 10 BD  c) 40960 BD  d) autre : …….…………… BD 

2) Dans le cas d’un buffer cache, quel est le nombre d’accès disque nécessaire pour lire le fichier « F »?
a) 20481 AD  b) 10281 AD  c) 10279 AD  d) autre: …….…………… AD 

3) en l’absence d’un buffer cache, calculer le nombre d’accès disque nécessaire pour lire les 5000 premiers blocs?
a) 14424 AD  b) 5021 AD  c) 5000 AD  d) autre : …….…………… AD 

4) À la suite d’un malencontreux accident, 24,9 % du fichier est détruit. Quels sont les blocs d’adresse perdus dans ce
cas ?
a) Les 10 derniers  b) les 15 derniers  c) les 8 derniers d) autre :…….…………… 

1/4
USTHB Janvier M1 – IL/RSD/HPC 2017
Faculté d'Informatique Systèmes d'exploitation

Exercice 2: (8 pts)

Dans un jeu d’aventure en ligne multi-joueurs, il y’a deux catégories de joueurs : débutant et expert.

Une fois connecté, un joueur doit prendre un canot (petit bateau) et traverser la rivière.

- Le canot ne peut démarrer que s’il contient 5 joueurs.


- Un joueur expert peut monter dans le canot s’il y a une place disponible.
- Un joueur débutant ne peut monter dans le canot que s’il n’y a aucun joueur expert.
Dans le cas où il y a un joueur expert dans le canot, le joueur débutant sera mis dans une file à part et
devient prioritaire par rapport aux autres joueurs des deux catégories durant les prochaines navettes
(départs du canot).

Les joueurs experts sont dans une arène. Pour devenir Expert, un joueur débutant doit défier un autre joueur
expert. Les défis se déroulent dans l’arène :

- Si au moins un joueur expert est libre, le joueur débutant peut le défier ; sinon il devra attendre son tour.
- Un joueur débutant doit sortir de l’arène après avoir terminé son défi (quel que soit le résultat).

Soit le code suivant proposé comme solution pour les deux types de joueurs
Déclaration :
Typei : débutant ou expert
NB-joueur, NB-attente, NB-expert, NB-débutant, NB-expert-arène : entier

Conditions :
canot, attente, navette, défier-expert,
Monter_canot Descendre_canot
Si ( <X1> ) alors canot.wait ; NB-joueur=0 ;
Tantque ( <X4> ) faire
Si (typei==’expert’) alors {
{ NB-expert ++ ; NB-attente - - ;
NB-joueur++ ; Attente.signal ;
Si (NB-joueur < 5) alors navette.wait ; }
<X2> Tantque( NBjoueurs < 5) faire
} { <X5>
Sinon }
{ Si (NB-Expert > 0) alors
{ NB-attente ++ ;
<X3>
}
NB-joueur++ ;
Si (NB-joueur < 5) alors navette.wait ;
Navette.signal ;
}
Accès _arène Sortie_ arène
Si (type == ‘expert’) alors Si (type == ‘expert’) alors
NB-expert-arène ++ ; NB-expert-arène -- ;
Sinon Sinon
{ Nb-débutant++ ; Nb-débutant - - ;
Si ( <X6> ) alors
<X7> Si ( <X8> ) alors
} défier-expert.signal ;

Compléter la solution proposée en remplaçant les éléments manquants <Xi> (i= 1 à 8) par les conditions et les
instructions données dans les tableaux ci-dessous ( bonne réponse: +1 point et mauvaise réponse: - 0, 5 point).

2/4
USTHB Janvier M1 – IL/RSD/HPC17
Faculté d'Informatique Systèmes d'exploitation

Conditions:
C1: nb-débutant= = NB-expert C2: NB-joueur < 5 C3: NB-Attente < 0 C4: NB-expert < 0
C5: nb-débutant<=NB-expert C6: NB-joueur == 5 C7: NB-Attente == 0 C8: NB-expert == 0
C9: nb-débutant> NB-expert C10: NB-joueur >= 5 C11: NB-Attente > 0 C12: NB-expert > 0
C13: (NB-Attente > 0) et (NB-joueur < 5) C14: nb-débutant > NB-expert-arène
C15: (NB-Attente > 0) ou (NB-joueur == 5) C16: nb-débutant< NB-expert-arène
C17: (NB-Attente > 0) et (NB-joueur == 5) C18: nb-débutant <= NB-expert-arène
Instructions:
I1: NB-expert-arène - - ; I2: navette.wait ; I3: Nb-débutant -- ; I4: NB-joueur ++ ;
I5: NB-expert-arène ++ ; I6: navette.signal ; I7: Nb-débutant = ++ ; I8: : NB-joueur = 0 ;
I9: NB-expert-arène = 0 ; I10: canot.wait ; I11: NB-expert ++ ; I12 : NB-joueur - - ;
I13: attente.wait ; I14: canot.signal ; I15: NB-expert = 0 ; I16: défier-expert.wait() ;
I17: attente.signal ; I18: Nb-débutant = 0 ; I19: NB-expert -- ; I20: défier-expert.signal() ;

Remarque : Les réponses doivent être sous la forme I6, I8, C6,…

<Xi> <X1> <X2> <X3> <X4> <X5> <X6> <X7> <X8>

Réponses C6 I6 I13 C13 I14 C14 I16 C16

Exercice 3: (8 pts)

Soit un système composé de trois classes de processus cycliques : La classe RequêtesUtilisateurs, la classe
ExécutionRequêtes et la classe ImpressionRésultats. Chaque classe est composée de 3 processus.
Nous disposons également de deux tampons circulaires T1 et T2, composés respectivement de m et n cases.
- Les processus RequêtesUtilisateurs enregistrent chacune des requêtes de travail qui lui sont soumises par des
clients puis ils les placent dans le tampon T1 à destination des processus de la classe ExécutionRequêtes.
- Les processus ExécutionRequêtes exécutent chaque requête de travail prélevée depuis le tampon T1 et
transmettent ensuite aux processus ImpressionRésultats un ordre d’impression des résultats déposés dans le
tampon T2.
- Les processus de la classe ImpressionRésultats prélèvent les ordres d’impression déposés dans le tampon T2 et
les exécutent.
Compléter le code donné pour les trois classes de processus :
1. En donnant dans la partie initialisation les valeurs des sémaphores utilisés
2. En complétant le code de chaque classe de processus et en expliquant avec un commentaire le rôle de
chaque instruction insérée dans le code.
Remarque : Chaque ligne à compléter dans le code des processus correspond à une instruction
// Partie initialisation des sémaphores

3/4
USTHB Janvier M1 – IL/RSD/HPC 2017
Faculté d'Informatique Systèmes d'exploitation

Classe RequêtesUtilisateurs //Commentaires sur l’utilité des instructions ajoutées


mess : message;
Début
Tantque(vrai) faire
enregistrer_travail(mess);
……………………… //
……………………… //
T1[i] = mess;
……………………… //
……………………… //
……………………… //
fait
Fin
Classe ExécutionRequêtes //Commentaires sur l’utilité des instructions ajoutées
mess, res : message;
Début
Tantque(vrai) faire
……………………… //
……………………… //
mess = T1[j];
……………………… //
……………………… //
……………………… //
exécuter_travail(mess, res);
……………………… //
……………………… //
T2[k] = res;
……………………… //
……………………… //
……………………… //
fait
Fin
Classe ImpressionRésultats //Commentaires sur l’utilité des instructions ajoutées
mess : message;
Début
Tantque (vrai) faire
……………………… //
……………………… //
mess = T2[l];
……………………… //
……………………… //
……………………… //
imprimer_resultat(mess);
fait
Fin
4/4 Bon courage
USTHB Janvier M1 – IL/RSD/HPC 2017
Faculté d'Informatique Systèmes d'exploitation

4/4 Bon courage

Vous aimerez peut-être aussi