TD4 : chapitre 4(La gestion de la mémoire)
Nom : NGOUADJEU SONGMO
Prénom : Durand Jospin
Option : ISR
Matricule : CM-UDS-23IUT0688
Exercice 1 : Questions à réponses ouvertes
1) Définir les termes suivants : mémoire logique, liaison,
segmentation, pagination, fragmentation, compactage.
1. Mémoire logique : est l'espace de stockage virtuel qui est
alloué à un programme ou à un processus par le système
d'exploitation.
2. Liaison : (ou binding) est le processus de liaison d'un nom de
variable ou d'un symbole à une adresse de mémoire spécifique.
3. Segmentation : est une technique de gestion de la mémoire
qui consiste à diviser la mémoire en segments de taille variable.
4. Pagination : est une technique de gestion de la mémoire qui
consiste à diviser la mémoire en pages de taille fixe.
5. Fragmentation: est un problème de gestion de la mémoire
qui se produit lorsque la mémoire est divisée en petits blocs
non contigus.
6. Compactage : est une technique de gestion de la mémoire
qui consiste à réorganiser les blocs de mémoire pour éliminer
les espaces vides et réduire la fragmentation.
2) Ce qui définie l’information accessible à un processus est :
L’ensemble des informations désignables dans son
programme (objets).
L’ensemble des informations de désignation (noms).
La mise en correspondance noms/objets.
3) On distingue différentes manières de réaliser la mise en
correspondance entre organisation de la mémoire logique et
implantation de cette mémoire logique en mémoire physique :
Réimplantation dynamique : la correspondance
logique/physique est variable dans le temps.
Correspondance fixe (aussi appelée implantation statique).
La correspondance est établie une fois pour toutes au
moment de la compilation.
Correspondance dynamique :
1. Elle peut être fixée au moment du chargement du
processus et donc varier entre deux exécutions.
2. Elle peut également varier durant l’exécution du
processus. Les objets sont donc déplacés à l’intérieur la
mémoire centrale.
4) L'algorithme de la peau d'oignon (ou "Onion Skin" en anglais)
est une technique de gestion de la mémoire qui consiste à
diviser la mémoire en plusieurs couches ou "peaux" de tailles
différentes.
L'algorithme fonctionne de la manière suivante :
1. La mémoire est divisée en plusieurs couches de tailles
différentes, chacune représentant une "peau" de la mémoire.
2. Chaque couche est associée à un niveau de priorité, les
couches les plus externes ayant une priorité plus basse que les
couches les plus internes.
3. Lorsqu'un processus nécessite de la mémoire, le système
d'exploitation commence par allouer de la mémoire dans la
couche la plus interne (la plus prioritaire).
4. Si la couche la plus interne est pleine, le système
d'exploitation passe à la couche suivante, et ainsi de suite,
jusqu'à ce qu'il trouve une couche avec suffisamment de
mémoire disponible.
5. Lorsqu'un processus termine, la mémoire qu'il occupait est
libérée et les couches sont réorganisées pour refléter les
changements.
L'utilité de l'algorithme de la peau d'oignon est la suivante :
- Il permet de gérer efficacement la mémoire en fonction des
besoins des processus.
- Il réduit les problèmes de fragmentation de la mémoire en
regroupant les blocs de mémoire libres dans les couches les
plus externes.
- Il améliore les performances du système en réduisant le
temps nécessaire pour allouer et libérer de la mémoire.
5) Voici un bref rappel des principes du swapping, de la
pagination et de la segmentation :
Swapping
- Le swapping est une technique de gestion de la mémoire qui
consiste à déplacer temporairement des processus ou des
données de la mémoire principale vers un espace de stockage
secondaire (disque dur, par exemple).
- L'objectif est de libérer de la mémoire principale pour
permettre à d'autres processus de s'exécuter.
- Le swapping peut être effectué de manière automatique par
le système d'exploitation ou de manière manuelle par
l'utilisateur.
Pagination
- La pagination est une technique de gestion de la mémoire qui
consiste à diviser la mémoire principale en blocs de taille fixe
appelés "pages".
- Chaque page est associée à une adresse virtuelle et à une
adresse physique.
- Lorsqu'un processus nécessite de la mémoire, le système
d'exploitation alloue une ou plusieurs pages à ce processus.
- La pagination permet de réduire les problèmes de
fragmentation de la mémoire.
Segmentation
- La segmentation est une technique de gestion de la mémoire
qui consiste à diviser la mémoire principale en blocs de taille
variable appelés "segments".
- Chaque segment est associé à un programme ou à un
processus.
- Lorsqu'un processus nécessite de la mémoire, le système
d'exploitation alloue un ou plusieurs segments à ce processus.
- La segmentation permet de réduire les problèmes de
fragmentation de la mémoire et de gérer efficacement la
mémoire pour les programmes et les processus.
6) Les deux types de fragmentation communément rencontrés
sont :
1. *Fragmentation interne* : Il s'agit d'un type de
fragmentation qui se produit lorsque des blocs de mémoire
sont alloués à des processus, mais que ces blocs ne sont pas
entièrement utilisés. Cela peut entraîner des espaces vides
dans la mémoire qui ne peuvent pas être utilisés par d'autres
processus.
Type de système : Systèmes à pagination, où la mémoire est
divisée en pages de taille fixe.
1. *Fragmentation externe* : Il s'agit d'un type de
fragmentation qui se produit lorsque des blocs de mémoire
libres sont dispersés dans la mémoire, ce qui rend difficile
l'allocation de blocs de mémoire de taille suffisante pour les
processus.
Type de système : Systèmes à segmentation, où la mémoire est
divisée en segments de taille variable.
7) L'utilisation d'informations partagées entre plusieurs
mémoires logiques peut engendrer les problèmes suivants :
1. _Problèmes de cohérence_ : Lorsque plusieurs processus
partagent des informations, il peut y avoir des problèmes de
cohérence entre les différentes copies des données.
2. _Problèmes de synchronisation_ : Les processus qui
partagent des informations doivent être synchronisés pour
éviter les accès concurrents aux mêmes données.
3. _Problèmes de sécurité_ : Lorsque des informations sont
partagées entre plusieurs processus, il peut y avoir des
problèmes de sécurité si les processus n'ont pas les mêmes
droits d'accès.
4. _Problèmes de performances_ : L'utilisation d'informations
partagées peut entraîner des problèmes de performances si les
processus doivent attendre les uns les autres pour accéder aux
données.
5. _Problèmes de gestion de la mémoire_ : L'utilisation
d'informations partagées peut entraîner des problèmes de
gestion de la mémoire si les processus ne libèrent pas les
ressources partagées lorsqu'ils ne les utilisent plus.
6. _Problèmes de dépendance_ : Les processus qui partagent
des informations peuvent devenir dépendants les uns des
autres, ce qui peut entraîner des problèmes de fiabilité et de
maintenabilité.
7. _Problèmes de scalabilité_ : L'utilisation d'informations
partagées peut devenir difficile à gérer lorsqu'il y a un grand
nombre de processus qui partagent les mêmes informations.