ECOLE POLYTECHNIQUE DE MONTREAL
DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE
SECTION INFORMATIQUE,
EXAMEN FINA!
Professeur : Kerly Titus
Cours : Systémes d’exploitation (INF3600)
Sections : 1, 2,3
Session : Automne 2000
Date : Samedi, 9 décembre 2000
Heure : 9430 @ 12h00
Piéces jointes : - Grille d’ordonnancement (page 6)
Instructions spéciales : - Répondre a toutes les questions dans le cahier d’examen
- Répondre é la question 1a sur la grille d’ordonnancement
ci-jointe, et V'insérer dans le cahier d’examen
Matériels permis : - Toute documentation permise
- Calculatrice
Question 1. Ordonnancement de processus [4/20]
Considérez un systéme avec les caractéristiques suivantes :
- 2 UCTs pouvant fonctionner en paralléle et partageant une méme file
d’attente.
- Une charge de 4 processus (PO, Pl, P2, P3) dont les caractéristiques sont
énumérées dans la table 1 ci-dessous.
- Lrdonnanceur de bas niveau implante V'algorithme du tourniquet avec
priorité externe. Le processus ayant le plus haut niveau de priorité, i.e. plus
petite valeur, est toujours placé en position de téte dans la file d’attente de
ruct.
- Unquantum de 5 unités.
- Un temps de changement de contexte instantané.
- 2 périphériques d’E/S similaires et partagés par les divers processus.
- Lorsque 2 processus de méme niveau de priorité arrivent en méme temps
dans la file d’attente de I' UCT, celui qui finit son E/S a priorité.
+ Lorsqu’un processus termine son exécution par une opération d’E/S, ses
ressources ne sont libérées qu’au prochain changement de contexte.
INF3600 Examen final ‘Automne 2000
Page 1 de 6f
D
PO 0 8 2 4
PI 2 4 0 = 2
P2, 5 a 3 2.7, 3
PB. 6 6 1 3.5) 1
Table 1 - Charge de processus
a) Dessiner un diagramme montrant l'état d'occupation des UCTs, de la file
dattente des UCTs, des périphériques d’E/S, et des files d'attente des
périphériques d’E/S. Utiliser la grille jointe a la fin de ce questionnaire, y inscrire
votre nom, la détacher, et 'insérer dans le cahier d’examen. [3/4]
b)Supposons que nous ayons utilisé un calcul de priorité interne (avec
préemption) qui varie selon le temps d'utilisation de I’UCT et le temps
d’attente dans la file de I'UCT, pensez-vous que la performance (temps de
virement et d’attente) globale du systtme s’en trouverait améliorée pour notre
charge de processus? Expliquez. [1/4]
Question 2. Synchronisation de processus [3/20]
Considérez une application bancaire dont les processus concurrentiels
créditerAccompte, et lireAccompte peuvent se partager la variable balance pour
Yaccés en écriture et en lecture. La synchronisation des processus est implantée a
Yaide de sémaphores et utilise la premigre solution du probléme d’accés de
ressources partagées en lecture et en écriture. Dans cette solution, les processus
en lecture peuvent accéder immédiatement a la variable partagée en autant
qu'un autre processus en lecture aie déja acquis la ressource. Lorsqu’un
Processus requiert un accés en écriture pour la ressource partagée, celui-ci se doit
d’attendre la fin des requétes d’accés en lecture.
float balance;
int créditerAccompte(float montant)
{ if (montant > 0)
{balance += montant;
return 0;
]
else
return 1;
}
INF3600 Examen final ‘Automne 2000
Page 2 de 6float lireAccompte( )
{ return balance; }
a) Insérer le code de synchronisation dans chacun des processus ci-haut. Vous
devez recopier et compléter le code existant dans le cahier d'examen. [2/3]
b) Supposez que la plupart des opérations bancaires courantes consiste a créditer
un acompte, expliquez laquelle des solutions (1% favorisant les lecteurs ou
ime favorisant les écriveurs) de synchronisation serait plus appropriée. [1/3]
Question 3. Mémoire virtuelle [7/20]
a) Considérez une mémoire virtuelle ayant une taille de mémoire physique
(principale) de 32 Méga-octets et supportant une taille de blocs de 512 octets.
Aussi, supposez un processus occupant un espace adresse logique de 856 Kilo-
octets. [4/7]
1°) Calculez le nombre de pages dans I’espace adresse logique, et le nombre
de trames de I’espace adresse physique.
2°) Montrez les formats des adresses logiques et physiques. Spécifiez le
nombre de bits pour les blocs, les pages, et les trames.
3°) Pour I’adresse logique (virtuelle) 11301, spécifiez son emplacement dans
la mémoire physique. Supposez que la page contenant I’adresse 11301 se
trouve dans la trame 15240.
4°) Est-ce possible que le nombre de pages requis par un processus soit plus
élevé que le nombre de trames disponibles pour exécuter le processus en
mémoire physique? Expliquez.
b) Considérez la séquence de référence de pages w= {0, 1,2, 1,2, 1,2,1,2.3,4,5,
6,5, 6, 7} pour un processus. [3/7]
1°) En utilisant le modale de lespace vital, représentez allocation en mémoire
physique des pages pour une taille de fenétre de 3 trames (i.e. V = 3).
2°) Estimez, le taux de fautes de page optimal. Quelle valeur minimale de V nous
permettrait d’obtenir ce taux optimal?
INF3600 Examen final ‘Automne 2000
Page 3 de 6