Vous êtes sur la page 1sur 2

Ecole nationale supérieure des énergies Module : Système d’exploitation

renouvelables, de l'environnement et du ----------------------


développement durable 3ème IRIA – Interrogation écrite
---------------------
Nom 02 Décembre 2021 - Durée = 45’’
Prénom Tous documents interdits

Questions de compréhension (10 points)


Q1 quelle différence faites-vous entre éditeur de lien et chargeur ?
• La principale différence entre l'éditeur de liens et le chargeur réside dans le fait que l'éditeur de
liens génère le fichier exécutable d'un programme, tandis que le chargeur charge le fichier
exécutable obtenu à partir de l'éditeur de liens dans la mémoire principale pour exécution
• L'éditeur de liens reçoit le module objet d'un programme généré par l'assembleur. Cependant, le
chargeur reçoit le module exécutable généré par l'éditeur de liens.
• L'éditeur de liens associe tous les modules d'objets d'un programme pour générer des modules
exécutables. Il relie également la fonction de bibliothèque du module d'objets aux bibliothèques
intégrées du langage de programmation de haut niveau. D'autre part, le chargeur alloue de
l'espace à un module exécutable de la mémoire principale.
Q2 Qu'est-ce qu'une interruption non-masquée
C’est une interruption dont l'effet est immédiat
Q3 Lorsque l’espace mémoire libre totale est suffisant pour satisfaire une demande, mais il n'est pas contigu. On
parle de quel phénomène ici ?
C’est la fragmentation (partitionnement) externe
Q4 Une solution au problème de la fragmentation (partitionnement) externe est le compactage. Le compactage
consiste à déplacer tous les processus à une extrémité de la mémoire et tous les espaces libres dans l'autre sens
produisant ainsi un grand espace libre de mémoire disponible. Quel est l’inconvénient du compactage ?
Le coût engendré par cette opération
Q5 Comment les mémoires caches contribuent-elles à améliorer les performances ? Pourquoi les systèmes
n'utilisent-ils pas des caches plus nombreux ou plus grands s'ils sont vraiment utiles ?
Les caches permettent à des composants de vitesses différentes de communiquer plus efficacement en stockant
temporairement les données du dispositif le plus lent dans un dispositif plus rapide (le cache). Les caches sont,
presque par définition, plus coûteux que le dispositif pour lequel ils sont mis en cache, de sorte que
l'augmentation du nombre ou de la taille des caches augmenterait le coût du système.

1/2
Exercice 1 (1.5 points)
Considérons un système qui prend en charge les stratégies d'allocation contiguë, d’allocation par liste chaînée
et d’allocation par liste chaînée indexée. Quelle stratégie est la mieux placée pour répondre aux critères suivants
pour un fichier particulier :
- si le fichier est généralement accédé de manière séquentielle, si le fichier est relativement petit.
Contigu
- si le fichier est volumineux et généralement accessible de manière séquentielle.
Lié
- si le fichier est volumineux et généralement accessible de manière aléatoire.
Indexé

Exercice 2 (2.5 points)


La segmentation est similaire à la pagination mais utilise des "segments" de taille variable. Définissez deux
algorithmes de remplacement de segments basés sur les schémas de remplacement de pages FIFO et LRU.
Rappelez-vous que puisque les segments ne sont pas de la même taille, le segment qui est choisi pour être remplacé
peut ne pas être assez grand pour laisser suffisamment d'emplacements consécutifs pour le segment requis.
FIFO. Trouver le premier segment suffisamment grand pour accueillir le segment entrant. Si la relocation n'est pas
possible et qu'aucun segment n'est assez grand, sélectionnez une combinaison de segments ayant des espaces
mémoires contiguës, qui sont "les plus proches du premier de la liste" et qui peuvent accueillir le nouveau
segment.
LRU. Sélectionnez le segment qui n'a pas été utilisé pendant le plus longtemps et qui est suffisamment grand, en
ajoutant tout espace restant à la liste des espaces libres. Si aucun segment n'est assez grand, sélectionnez une
combinaison des segments des plus "anciens" qui sont contigus en mémoire (si la relocation n'est pas disponible)
et qui sont assez grands.

Exercice 3 (6 points)
Soit un programme dont le code occupe 1024 octets en mémoire et qui utilise 2000 octets de données. Ce
programme est exécuté dans un système qui utilise la pagination de la mémoire dont la taille de la mémoire
réelle est de 1 Mo, la taille d'une page est de 512 octets.
a) Sachons que la taille de l'espace logique d’adressage = 224 = 16 Mo. Donnez :
1. le nombre de bits du déplacement
2. le nombre de bits du numéro de page virtuelle
3. le nombre de bits d'une adresse réelle
4. le nombre de bits du numéro de page réelle (case)
5. le nombre d'entrées de la table des pages
1. 9 bits (29 = 512 octets taille d’une page)
2. 24 – 9 = 15 bits
3. 20 bits (2018 cadres (211) de 512 octets chacun (29) → 15 bits
4. 20 – 9 = 11 bits
5. 215 = 32Ko
b) Le chargement de ce programme en mémoire engendre-t-il une fragmentation interne ? Justifiez votre réponse.
Oui. Le programme a besoin de 2000 octets de données et de 1024 octets de code, donc un total de 3024
octets en mémoire. Le nombre de pages occupées : [3024 / 512] = 6 pages. Dans la dernière page, il reste 512
– 464 = 48 octets libres, ce qui cause la fragmentation interne.

2/2

Vous aimerez peut-être aussi