Vous êtes sur la page 1sur 4

Final Automne 2001 Page 1 sur 4 INF3600

Partie I (15 pts) : Interblocage

Pour traiter une image de taille T unités, un système composé de N processeurs à mémoire
partagée, crée N processus. Chaque processus s’exécute sur un processeur et se charge de
traiter une partie de l’image. Pour faire son traitement, un processus a besoin d’une unité de
mémoire par unité d’image qu’il a à traiter, mais demande de la mémoire unité par unité au
fur et à mesure de ses besoins. Si une demande ne peut être satisfaite, le processus demandeur
est mis en attente (attente active). La libération des unités de mémoire allouées à un processus
aura lieu lorsqu’il aura fini le traitement de toute sa partie. La mémoire disponible pour
répondre aux demandes d’allocation des différents processus est de taille M unités.

Question 1 (7 pts) : Algorithme du banquier


Pour éviter les interblocages, le système utilise l’algorithme du banquier. Supposez que N = 4,
T = 16, M = 8 et qu’à l’état courant les processus P1, P2, P3 et P4 ont respectivement traité 1
sur 3 unités, 1 sur 4 unités, 1 sur 4 unités et 3 sur 5 unités (par exemple, P1 : 1 sur 3 unités
signifie que le processus P1 est chargé de traiter 3 unités de l’image et a seulement traité 1
unité).
1) Est-il possible d’atteindre une situation d’interblocage, si T≤M ? Si T>M ? Justifiez
votre réponse (2 pts).
2) Vérifiez, en utilisant l’algorithme du banquier, si l’état courant est certain (sûr ou
sauf). (2.5 pts)
3) Le processus P3 demande une unité de mémoire. Doit-on la lui accorder ? Attention,
vous devez répondre à cette question en utilisant l’algorithme du banquier. (2.5 pts)

Question 2 (8 pts) : Caractérisation de l’interblocage


Considérez un état courant où chaque processus Pi détient Ci unités et a encore besoin de Ri
unités pour poursuivre et terminer le traitement de sa partie.
1) Exprimez en fonction de M, Ci et Ri, i=1 à N, la condition qui caractérise la situation
d’interblocage (c’est à dire : aucune ressource n’est disponible et il y a encore des
besoins). (4 pts)
2) Sachant que T = ¦i=1,N (Ci + Ri), montrez que si T < N+M alors il n’y a pas
d’interblocage à l’état courant. (4 pts)
Final Automne 2001 Page 2 sur 4 INF3600

Partie II (15 pts) : Gestion de la mémoire

Considérez un système disposant de 16 MO de mémoire physique réservée aux processus


utilisateur. La mémoire est composée de cases (cadres ou frames) de taille 4 KO. L’espace
logique d’un processus est composé de trois segments (le segment de code, le segment de
données et le segment de pile). Chaque segment est composé d’une ou plusieurs pages.
Lorsqu’un processus demande à être chargé en mémoire, le système tente d’allouer à chaque
segment de l’espace logique du processus, une zone contiguë en mémoire, dans
l’ordre suivant : le segment de code, le segment de données et le segment de pile.
En cas de succès, chaque segment est chargé dans la zone contiguë allouée au segment. La
taille de l’espace alloué à chaque segment est exactement égale au nombre de pages qu’il y a
dans le segment (mémoire à partition variable).
Un processus chargé en mémoire y séjournera jusqu’à la fin de son exécution (pas de va-et-
vient et pas de relocation).
En cas d’échec, le chargement du processus est retardé et aucun espace n’est alloué au
processus jusqu’à la prochaine tentative de chargement en mémoire.
Lorsqu’un processus se termine, le processus libère son espace mémoire et le système tente de
charger en mémoire d’autres processus.

Question 1 (9 pts): Allocation d’espace en mémoire


Considérez les 5 processus du tableau suivant :
Instant d’arrivée Processus Taille Temps
0 A 5 MO + 5 MO + 1 MO 8 ms
2 B 4 MO + 1 MO + 2 MO 10 ms
4 C 1 MO + 1 MO + 1 MO 13 ms
10 D 2 MO + 1 MO + 2 MO 15 ms
11 E 6 MO + 2 MO + 1 MO 6 ms

Par exemple, la première ligne du tableau signifie que le processus A arrive à l’instant 0, son
espace d’adressage logique est composé d’un segment de code de 5 MO, d’un segment de
données de 5 MO et d’un segment de pile de 1 MO. Lorsque le processus A est chargé en
mémoire, il y séjournera pendant 8 ms.
Final Automne 2001 Page 3 sur 4 INF3600

1) Donnez sous forme de diagrammes de temps l’évolution de l’état de la mémoire et de


la file de haut niveau, aux différentes étapes de traitement de ces processus, sous les
hypothèses suivantes (5 pts) :
- Le mode d’allocation des trous pour les segments est le premier ajustement
(First Fit) ;
- Le répartiteur de haut niveau fonctionne selon PAPS (Premier Arrivé, Premier
Servi). Le répartiteur de haut niveau a pour rôle d’ordonnancer les demandes
de chargement en mémoire.
2) Cette stratégie d’allocation d’espace souffre-t-elle de fragmentation interne ? De
fragmentation externe ? Justifiez votre réponse. (2 pts)
3) Expliquez pourquoi le gestionnaire de la mémoire n’alloue aucun espace à un
processus s’il n’y a pas suffisamment d’espace pour les trois segments du processus
(la politique du tout ou rien). (2 pts)

Question 2 (6 pts): Translation d’adresse


Supposez que l’adressage logique est sur 24 bits. Les 2 premiers bits (de poids fort) indiquent
le numéro de segment. Les 10 bits suivants donnent le numéro de page. Les 12 derniers bits
sont réservés au déplacement dans la page.
L’adresse physique est aussi sur 24 bits. Les 12 bits de poids fort indiquent le numéro de
case. Les 12 derniers bits spécifient le déplacement dans la case.
1) Donnez le nombre de cases (cadres ou frames) en mémoire physique. (1 pt)
2) Expliquez comment convertir une adresse logique en une adresse physique. (2 pts)
3) Considérez l’adresse logique suivante :

01 00 0000 0010 0000 0011 0001

Donnez l’adresse physique correspondant à l’adresse logique précédente, si le segment


01 est chargé dans une zone contiguë commençant à la case (cadre ou frame) numéro
3 : (1 pt)
0000 0000 0011
4) Est-il possible de réaliser la translation d’adresse lors du chargement (dites pourquoi) ?
(2 pts)
Final Automne 2001 Page 4 sur 4 INF3600

Partie III (10 pts): Système de fichiers et E/S

Question 1 (7 pts) : Système de fichiers


Considérez le système de fichiers d’UNIX et les tables de gestion suivantes : la table des i-
nœuds, la table de tous les fichiers ouverts et les tables des descripteurs de fichier (une par
processus).
1) Indiquez les informations récupérées, ajoutées dans chaque table ainsi que
l’information retournée au processus demandeur, lors d’une demande d’ouverture, par
un processus, d’un fichier ordinaire existant. (2 pts)
2) Sachant que chaque fichier ouvert a son propre pointeur de fichier, utilisé pour
parcourir les données du fichier, indiquez, pour chacun des cas suivants, si les
processus père et fils partagent le même pointeur de fichier ? Justifiez votre réponse.
a) Un processus père ouvre un fichier ordinaire existant avant de créer un processus
fils (avant d’effectuer un appel à fork). (1 pt)
b) Un processus père crée un processus fils (effectue un appel à fork) puis chacun des
deux processus ouvre un même fichier ordinaire existant. (1 pt)
3) Supposez que seule la table des i-nœuds est en mémoire et que chaque répertoire tient
sur un bloc.
a) Donnez le nombre d’accès au disque nécessaires pour récupérer l’i-nœud du
fichier «/usr/cours/INF3600/tps/tp.pdf ». (1 pt)
b) Donnez deux avantages qu’ont les liens physiques par rapport aux liens
symboliques. (2 pts)

Question 2 (3 pts) : E/S


1) Expliquez le principe de l’antémémoire d’un disque. Citez le problème principal qu’elle
engendre au niveau du système de fichier. (2 pts)
2) Expliquez pourquoi certains pilotes de disques ordonnancent les requêtes d’E/S. (1 pt)

Vous aimerez peut-être aussi