Vous êtes sur la page 1sur 80

Segmentation simple Segmentation avec pagination Conclusion

Systèmes d’Exploitation
Cours 8/13 : Mémoire segmentée

Nicolas Sabouret
Université Paris-Sud

Licence 3 - semestre S5

Info32b Systèmes d’Exploitation Nicolas Sabouret 1/32


Segmentation simple Segmentation avec pagination Conclusion

Plan

1 Segmentation simple

2 Segmentation avec pagination

3 Conclusion

Info32b Systèmes d’Exploitation Nicolas Sabouret 2/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Plan

1 Segmentation simple
Principe général
Mise en œuvre
Avantages et limites

2 Segmentation avec pagination

3 Conclusion

Info32b Systèmes d’Exploitation Nicolas Sabouret 3/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Limite de la mémoire paginée

Découpage des processus


Taille arbitraire (2nb bits cadre )

Ü Peut couper une portion de code, un bloc de données. . .


Fragmentation résiduelle (2nb bits cadre−1 × nb proc)

Chargement d’une page


Plein de données inutiles
Pas forcément tout ce dont on a besoin

Idée
Découper en tenant compte de la structure du processus !
(code + données)

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Mémoire segmentée

Principe général
Structurer la mémoire en blocs de données/routines indépendants :

Exemples
Pile
Table des symboles
Programme principal
Fonction
Bibliothèque
...

Info32b Systèmes d’Exploitation Nicolas Sabouret 5/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Structure en segments

Processus

Espace d’adressage logique

Info32b Systèmes d’Exploitation Nicolas Sabouret 6/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Structure en segments

processus

main stub pile tableau

Espace d’adressage logique

Info32b Systèmes d’Exploitation Nicolas Sabouret 6/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Structure en segments

processus

main stub pile tableau

segment 0
Espace d’adressage logique

Info32b Systèmes d’Exploitation Nicolas Sabouret 6/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Structure en segments

processus

main stub pile tableau

base
offset

segment 0
Espace d’adressage logique

Info32b Systèmes d’Exploitation Nicolas Sabouret 6/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Structure en segments

processus

main stub pile tableau

base
Routine printf x86 (stdio)
offset

offset
mov eax, 4 ; Appel de sys write
segment 0 mov ebx, 1 ; Sortie standard STDOUT
mov ecx, Buffer ; Chaine à afficher
mov edx, BufferSize ; Taille de la chaine
Espace d’adressage logique int 80h ; Interruption du kernel
mov eax, 1 ; Appel de sys exit
mov ebx, 0 ; Code de retour
int 80h ; Interruption du kernel

Info32b Systèmes d’Exploitation Nicolas Sabouret 6/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Adressage

Adresse logique
Numéro de segment (selecteur)+ décalage

Résolution
Memory Management Unit
Transformer segment + décalage en adresse physique
Vérifier que le décalage ne sort pas du segment

Info32b Systèmes d’Exploitation Nicolas Sabouret 7/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Adressage

Adresse logique
Numéro de segment (selecteur)+ décalage

Résolution
Memory Management Unit
Transformer segment + décalage en adresse physique
Vérifier que le décalage ne sort pas du segment
→ erreur de segmentation

offset

segment ?!

Info32b Systèmes d’Exploitation Nicolas Sabouret 7/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Construction des segments

À la compilation
Ü dépendant du langage
Chaque segment est référencé par un numéro
→ table des segments (1 par processus)

Info32b Systèmes d’Exploitation Nicolas Sabouret 8/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Construction des segments

À la compilation
Ü dépendant du langage
Chaque segment est référencé par un numéro
→ table des segments (1 par processus)

Exemple : Java
Méthodes
Tas (fonctions, attributs static)
Pile (1 pour chaque thread)
Class loader

Info32b Systèmes d’Exploitation Nicolas Sabouret 8/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Construction des segments

À la compilation
Ü dépendant du langage
Chaque segment est référencé par un numéro
→ table des segments (1 par processus)

Exemple : C
Variables globales (tas)
Fonctions de bibliothèques (1 par bibliothèque)
Programme principal et pile

Info32b Systèmes d’Exploitation Nicolas Sabouret 8/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Résolution d’adresse

Principe
Géré au niveau de la MMU
Numéro de segment (selecteur) → adresse de base
Base + décalage → adresse physique
Erreurs de segmentations

Info32b Systèmes d’Exploitation Nicolas Sabouret 9/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Résolution d’adresse

Principe
Géré au niveau de la MMU
Numéro de segment (selecteur) → adresse de base
Base + décalage → adresse physique
Erreurs de segmentations

Table des segments


Pour chaque segment :
Base = adresse physique de départ
Limite = taille du segment
. . . aussi appelée : table des descripteurs

Info32b Systèmes d’Exploitation Nicolas Sabouret 9/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Résolution d’adresse
RAM

UC

Memory Management Unit

seg. base limite


00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
... ... ...
table des segments

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Résolution d’adresse
RAM
adresse logique

UC

Memory Management Unit

seg. base limite


00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
... ... ...
table des segments

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Résolution d’adresse
RAM
adresse logique

UC
numéro de segment décalage

Memory Management Unit

seg. base limite


00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
... ... ...
table des segments

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Résolution d’adresse
RAM
adresse logique

UC
numéro de segment décalage

Memory Management Unit

seg. base limite


00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
... ... ...
table des segments

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Résolution d’adresse
RAM
adresse logique

UC
numéro de segment décalage

Memory Management Unit

seg. base limite


00 0275 BC31 0913
01 0281 2AC6 6D78 ≤
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
... ... ...
table des segments

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Résolution d’adresse
RAM
adresse logique

UC
numéro de segment décalage

Memory Management Unit

seg. base limite


00 0275 BC31 0913
01 0281 2AC6 6D78 ≤
02 0000 AA6F 006F
03 0103 B5D1 045E
NON

04 0275 B31E 00B1


... ... ...
table des segments Interruption

erreur de segmentation

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Résolution d’adresse
RAM
adresse logique

UC
numéro de segment décalage

Memory Management Unit

seg. base limite


00 0275 BC31 0913
01 0281 2AC6 6D78 ≤
OUI
+
02 0000 AA6F 006F
03 0103 B5D1 045E
NON

04 0275 B31E 00B1


... ... ...
table des segments Interruption adresse physique

erreur de segmentation

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Résolution d’adresse
RAM
adresse logique

UC
numéro de segment décalage

Memory Management Unit

seg. base limite


00 0275 BC31 0913
01 0281 2AC6 6D78 ≤
OUI
+
02 0000 AA6F 006F
03 0103 B5D1 045E
NON

04 0275 B31E 00B1


... ... ...
table des segments Interruption adresse physique

erreur de segmentation

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Résolution d’adresse
RAM
adresse logique
base
UC
numéro de segment décalage

décalage

segment
Memory Management Unit

seg. base limite


Ce que fait
limite
00 0275 BC31 0913 la somme
01 0281 2AC6 6D78 ≤
02 0000 AA6F 006F
03 0103 B5D1 045E
NON

04 0275 B31E 00B1


... ... ...
table des segments Interruption

erreur de segmentation

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Manipulation de nombre hexadécimaux

Il faut savoir comparer deux nombres en hexadécimal


C’est moins naturel qu’avec des entiers décimaux. . .

Triez les nombres suivants par ordre croissant :

0AB5C 9F6E 5E342 54E32 53E42

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Manipulation de nombre hexadécimaux

Il faut savoir comparer deux nombres en hexadécimal


C’est moins naturel qu’avec des entiers décimaux. . .

Triez les nombres suivants par ordre croissant :

0AB5C 9F6E 5E342 54E32 53E42

Il faut savoir additionner deux nombres en hexadécimal


Comme à l’école : il faut poser en colonne !

6A B5 C8 F526A FF 5E 4B C2
+ 73 82 21 + 6BD12 + 21 FD AA DB
------------ -------- ---------------

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Segmentation : premier avantage

Partage de segments
Un même segment (de code) utilisé par plusieurs processus

Exemple : bibliothèques
1 segment pour la bibliothèque
N processus utilisent le même segment

base limite
main stdio 0 3000 1000
main 0
1 4000 5F21
segment 0 segment 1 Table des segments
Mémoire logique processus 0 Processus 0 stdio

base limite
main stdio 0 A7D3 1000
main 1
1 4000 5F21
segment 0 segment 1 Table des segments
Mémoire logique processus 1 Processus 0
RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Partage de segments

Problème
Résolution d’adresse des segments partagés
Appel de routine = saut d’adresse
Utilisation de stub : code remplaçable
→ Adresse définie lors du premier chargement de la bibliothèque !

Info32b Systèmes d’Exploitation Nicolas Sabouret 13/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Partage de segments

Problème
Résolution d’adresse des segments partagés
Appel de routine = saut d’adresse
Utilisation de stub : code remplaçable
→ Adresse définie lors du premier chargement de la bibliothèque !

Protection
Les segments peuvent être marqué Read, Write ou ReadWrite.
→ bit de protection dans la table des segments

Info32b Systèmes d’Exploitation Nicolas Sabouret 13/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Segmentation : avantages

Gestion des tableaux


1 tableau = 1 segment
Ü vérification automatique des débordements
peu utilisé en pratique. . .

Partage de code
3 Bibliothèques, processus multi-utilisateurs
7 Plus difficile qu’avec la pagination (stub)
3 . . . mais résolu à la compilation + chargement par l’OS

Protection de la mémoire
Ü Par segment et par processus !

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Segmentation : limite

Taille des segments variables


Ü On retombe sur le problème de l’allocation contigüe (voir
cours 5) :
Fragmentation → perte de mémoire
Défragmentation → perte de temps à l’exécution

Solution ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 15/32


Segmentation simple Segmentation avec pagination Conclusion
Principe général Mise en œuvre Avantages et limites

Segmentation : limite

Taille des segments variables


Ü On retombe sur le problème de l’allocation contigüe (voir
cours 5) :
Fragmentation → perte de mémoire
Défragmentation → perte de temps à l’exécution

Solution
Segmentation avec pagination

Info32b Systèmes d’Exploitation Nicolas Sabouret 15/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Plan

1 Segmentation simple

2 Segmentation avec pagination


Principe
Exemples
Exercice

3 Conclusion

Info32b Systèmes d’Exploitation Nicolas Sabouret 16/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Principe général

Idée
Paginer les segments
Ü Réduit la fragmentation et les problème d’allocation
Ü Permet le partage et l’adressage des segments
Adresse logique = sélecteur + décalage1
résolu par segmentation donne :
Adresse linéaire = (répertoire +)1 page + décalage2
Adresse physique = cadre de page + décalage2

1
si pagination à 2 niveaux
Info32b Systèmes d’Exploitation Nicolas Sabouret 17/32
Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Principe général

Idée
Paginer les segments
Ü Réduit la fragmentation et les problème d’allocation
Ü Permet le partage et l’adressage des segments
Adresse logique = sélecteur + décalage1
résolu par segmentation donne :
Adresse linéaire = (répertoire +)1 page + décalage2
Adresse physique = cadre de page + décalage2

Mémory Management Unit


Table des descripteurs : adresse logique → adresse linéaire
Répertoire1 + table des pages : adresse linéaire → physique
1
si pagination à 2 niveaux
Info32b Systèmes d’Exploitation Nicolas Sabouret 17/32
Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Implémentation : MMU

UC

RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Implémentation : MMU

adresse logique
UC sélecteur décalage

RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Implémentation : MMU

adresse logique
UC sélecteur décalage

limite base

Table des descripteurs

RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Implémentation : MMU

adresse logique
UC sélecteur décalage

segfault ≤ limite base

Table des descripteurs

RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Implémentation : MMU

adresse logique
UC sélecteur décalage

adresse linéaire
segfault ≤ limite base + répertoire page décalage’

Table des descripteurs

RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Implémentation : MMU

adresse logique
UC sélecteur décalage

adresse linéaire
segfault ≤ limite base + répertoire page décalage’

Table des descripteurs

Répertoire des pages

RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Implémentation : MMU

adresse logique
UC sélecteur décalage

adresse linéaire
segfault ≤ limite base + répertoire page décalage’

Table des descripteurs

Répertoire des pages Table de pages

RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Implémentation : MMU

adresse logique
UC sélecteur décalage

adresse linéaire
segfault ≤ limite base + répertoire page décalage’

Table des descripteurs

Répertoire des pages Table de pages

RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Implémentation : MMU

adresse logique
UC sélecteur décalage

adresse linéaire

cadre de page
segfault ≤ limite base + répertoire page décalage’

Table des descripteurs

Répertoire des pages Table de pages

RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Implémentation : MMU

adresse logique
UC sélecteur décalage

adresse linéaire

cadre de page
segfault ≤ limite base + répertoire page décalage’

Table des descripteurs

Répertoire des pages Table de pages

RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Implémentation : MMU

adresse logique adresse physique


UC sélecteur décalage

adresse linéaire

cadre de page
segfault ≤ limite base + répertoire page décalage’

Table des descripteurs

Répertoire des pages Table de pages

RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Architectures x386
Intel 80386
Architecture proposée en 1986, jusque dans les années 2000
Processeur CISC (Complex Instruction Set) 32 bits
Instruction sur plusieurs mots de 32 bits
Adressage physique sur 32 bits
Ü RAM max = 4Go

En 1986, la RAM était autour de 1Mo :


 640k should be enough for everyone  ...

Mémoire virtuelle
4 Go par processus
Ü Chaque processus adresse potentiellement l’ensemble de la
RAM
Info32b Systèmes d’Exploitation Nicolas Sabouret 19/32
Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Architectures x386

Segmentation
214 segments par processus (16 384 segments)
213 segments globaux (8 192 segments)
→ segments partagés entre plusieurs processus
(ex : bibliothèques)
213 segments locaux (8 192 segments)
→ données et code propre au processus

Info32b Systèmes d’Exploitation Nicolas Sabouret 20/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Architectures x386

Segmentation
214 segments par processus (16 384 segments)
213 segments globaux (8 192 segments)
→ segments partagés entre plusieurs processus
(ex : bibliothèques)
213 segments locaux (8 192 segments)
→ données et code propre au processus

Adresse logique
16 bits sélecteur =
13 bits numéro de segment + 1 bit global/local + 2 bits read-write

Info32b Systèmes d’Exploitation Nicolas Sabouret 20/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Architectures x386

Segmentation
214 segments par processus (16 384 segments)
213 segments globaux (8 192 segments)
→ segments partagés entre plusieurs processus
(ex : bibliothèques)
213 segments locaux (8 192 segments)
→ données et code propre au processus
Taille maximale du segment = 216 octets (256 Ko)
→ max 4Go par processus

Table des descripteurs


4 octets base (32 bits) + 4 octets limite (32 bits)
Total = 8 × 214 = 217 octets (128 Ko)

Info32b Systèmes d’Exploitation Nicolas Sabouret 20/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Architectures x386

Pagination
Adresse linéaire sur 32 bits
base (32 bits) + décalage (16 bits) → 32 bits
Pages de 4Ko (212 octets)
Pagination à 2 niveaux

Info32b Systèmes d’Exploitation Nicolas Sabouret 21/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Architectures x386

Pagination
Adresse linéaire sur 32 bits
base (32 bits) + décalage (16 bits) → 32 bits
Pages de 4Ko (212 octets)
Pagination à 2 niveaux

Adresse linéaire
10 bits répertoire répertoire = 210 × 32 bits = 4Ko

10 bits page une table = 210 × 20 bits ' 2Ko

12 bits décalage

Info32b Systèmes d’Exploitation Nicolas Sabouret 21/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Segmentation
L’OS réduit la capacité de segmentation
Ü permet d’être compatible avec plusieurs architectures

Exemple
Linux ≥2.0 sur architecture 80386 (32 bit)
Ü 2 niveaux RW (user/kernel) au lieu de 4 !
00=noyau, 11=utilisateur
Ü 4 types de segments :
Code
Données
État du processus (PCB) = 1 seul segment
Table des descripteurs (du processus) = 1 seul segment

Info32b Systèmes d’Exploitation Nicolas Sabouret 22/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Remarques

La segmentation existait sur les architectures 8086 et 80286


d’Intel
Ü 80386 introduit la pagination !
Les architectures 80486 et 80586 (Pentium) restent sur le
même principe
Ü ajout d’un cache, plus grand jeu d’instruction

Info32b Systèmes d’Exploitation Nicolas Sabouret 23/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Énoncé général
On se place dans un système de mémoire de 1Go de mémoire géré
de manière paginée et segmentée avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’à 1024 segments. Chaque
segment peut occuper 4Mo de mémoire. Le système d’exploitation
autorise jusqu’à 1024 processus.

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Énoncé général
On se place dans un système de mémoire de 1Go de mémoire géré
de manière paginée et segmentée avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’à 1024 segments. Chaque
segment peut occuper 4Mo de mémoire. Le système d’exploitation
autorise jusqu’à 1024 processus.

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Énoncé général
On se place dans un système de mémoire de 1Go de mémoire géré
de manière paginée et segmentée avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’à 1024 segments. Chaque
segment peut occuper 4Mo de mémoire. Le système d’exploitation
autorise jusqu’à 1024 processus.

Question 1
Quelle est la taille (en bits) de l’adresse logique ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Énoncé général
On se place dans un système de mémoire de 1Go de mémoire géré
de manière paginée et segmentée avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’à 1024 segments. Chaque
segment peut occuper 4Mo de mémoire. Le système d’exploitation
autorise jusqu’à 1024 processus.

Question 1
Quelle est la taille (en bits) de l’adresse logique ?

Réponse
210 segments de 222 octets → 232 octets
Ü 32 bits
Info32b Systèmes d’Exploitation Nicolas Sabouret 24/32
Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Énoncé général
On se place dans un système de mémoire de 1Go de mémoire géré
de manière paginée et segmentée avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’à 1024 segments. Chaque
segment peut occuper 4Mo de mémoire. Le système d’exploitation
autorise jusqu’à 1024 processus.

Question 2
Quelle est la taille (en bits) de l’adresse physique ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Énoncé général
On se place dans un système de mémoire de 1Go de mémoire géré
de manière paginée et segmentée avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’à 1024 segments. Chaque
segment peut occuper 4Mo de mémoire. Le système d’exploitation
autorise jusqu’à 1024 processus.

Question 2
Quelle est la taille (en bits) de l’adresse physique ?

Réponse
RAM = 230 octets
Ü 30 bits
Info32b Systèmes d’Exploitation Nicolas Sabouret 25/32
Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Énoncé général
On se place dans un système de mémoire de 1Go de mémoire géré
de manière paginée et segmentée avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’à 1024 segments. Chaque
segment peut occuper 4Mo de mémoire. Le système d’exploitation
autorise jusqu’à 1024 processus.

Question 3
Quelle est la taille (en bits) de l’adresse linéaire ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 26/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Énoncé général
On se place dans un système de mémoire de 1Go de mémoire géré
de manière paginée et segmentée avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’à 1024 segments. Chaque
segment peut occuper 4Mo de mémoire. Le système d’exploitation
autorise jusqu’à 1024 processus.

Question 3
Quelle est la taille (en bits) de l’adresse linéaire ?

Réponse
Il faut pouvoir adresser tout le processus (virtuel) :
Ü 32 bits : 20 (page) + 12 (décalage)
Info32b Systèmes d’Exploitation Nicolas Sabouret 26/32
Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Énoncé général
On se place dans un système de mémoire de 1Go de mémoire géré
de manière paginée et segmentée avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’à 1024 segments. Chaque
segment peut occuper 4Mo de mémoire. Le système d’exploitation
autorise jusqu’à 1024 processus.

Question 4
Combien y a-t-il de cadres dans la RAM

Info32b Systèmes d’Exploitation Nicolas Sabouret 27/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Énoncé général
On se place dans un système de mémoire de 1Go de mémoire géré
de manière paginée et segmentée avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’à 1024 segments. Chaque
segment peut occuper 4Mo de mémoire. Le système d’exploitation
autorise jusqu’à 1024 processus.

Question 4
Combien y a-t-il de cadres dans la RAM

Réponse
230 ÷ 212 = 218

Info32b Systèmes d’Exploitation Nicolas Sabouret 27/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Question 5 : mémoire virtuelle


Si chaque processus dispose de la même proportion de mémoire
physique (allocation équitable), avec 256 processus présents en
tout dans le système, quelle est la probabilité qu’un processus de
16Mo produise un défaut de page ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 28/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Question 5 : mémoire virtuelle


Si chaque processus dispose de la même proportion de mémoire
physique (allocation équitable), avec 256 processus présents en
tout dans le système, quelle est la probabilité qu’un processus de
16Mo produise un défaut de page ?

Réponse
Chaque processus dispose de 230 ÷ 28 = 222 octets de RAM
(4Mo).
Le processus est plus gros (224 ) : il peut faire un défaut de
page.
Probabilité = 1 − 222−24 = 0,75.

Info32b Systèmes d’Exploitation Nicolas Sabouret 28/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Segmentation
segment limite base
0DE 0A 7E 5F 1D FF A0 21
Soit la table de descripteurs : 174 05 DD 24 03 D1 02 81
3B1 37 FB 21 00 7D EF 0D
5D0 00 05 E2 06 78 BF 63

Question 6
Donnez l’adresse linéaire correspondant à l’adresse logique :
5D 04 31 FF

Info32b Systèmes d’Exploitation Nicolas Sabouret 29/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Segmentation
segment limite base
0DE 0A 7E 5F 1D FF A0 21
Soit la table de descripteurs : 174 05 DD 24 03 D1 02 81
3B1 37 FB 21 00 7D EF 0D
5D0 00 05 E2 06 78 BF 63

Question 6
Donnez l’adresse linéaire correspondant à l’adresse logique :
5D 04 31 FF

Réponse
Les 10 premiers bits donnent le numéro de segment.
0101 1101 0000 1000 0011 0001 1111 1111
→ 0001 0111 0100 = 174 (numéro de segment)

Info32b Systèmes d’Exploitation Nicolas Sabouret 29/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Segmentation
segment limite base
0DE 0A 7E 5F 1D FF A0 21
Soit la table de descripteurs : 174 05 DD 24 03 D1 02 81
3B1 37 FB 21 00 7D EF 0D
5D0 00 05 E2 06 78 BF 63

Question 6
Donnez l’adresse linéaire correspondant à l’adresse logique :
5D 04 31 FF

Réponse
ligne 174 : limite = 05 DD 24
Les 22 derniers bits donnent le décalage : 04 31 FF ≤ 05 DD 24
→ pas d’erreur de segmentation

Info32b Systèmes d’Exploitation Nicolas Sabouret 29/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Segmentation
segment limite base
0DE 0A 7E 5F 1D FF A0 21
Soit la table de descripteurs : 174 05 DD 24 03 D1 02 81
3B1 37 FB 21 00 7D EF 0D
5D0 00 05 E2 06 78 BF 63

Question 6
Donnez l’adresse linéaire correspondant à l’adresse logique :
5D 04 31 FF

Réponse
ligne 174 : base = 03 D1 02 81
Les 22 derniers bits donnent le décalage : 04 31 FF + 03 D1 02 81
→ 03 D5 34 80 (adresse linéaire)

Info32b Systèmes d’Exploitation Nicolas Sabouret 29/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Pagination
page cadre
... ...
Soit la table de pages : 03D52 00031
03D53 02B7A
... ...

Question 7
Donnez l’adresse physique correspondant à l’adresse logique :
5D 04 31 FF

Info32b Systèmes d’Exploitation Nicolas Sabouret 30/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Pagination
page cadre
... ...
Soit la table de pages : 03D52 00031
03D53 02B7A
... ...

Question 7
Donnez l’adresse physique correspondant à l’adresse logique :
5D 04 31 FF

Réponse
Rappel : adresse linéaire = 03 D5 34 80, cadres de 4 Ko

Info32b Systèmes d’Exploitation Nicolas Sabouret 30/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Pagination
page cadre
... ...
Soit la table de pages : 03D52 00031
03D53 02B7A
... ...

Question 7
Donnez l’adresse physique correspondant à l’adresse logique :
5D 04 31 FF

Réponse
Rappel : adresse linéaire = 03 D5 34 80, cadres de 4 Ko
Les 12 derniers bits donnent le décalage : 480
0000 0011 1101 1001 0011 0100 1000 0000

Info32b Systèmes d’Exploitation Nicolas Sabouret 30/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Pagination
page cadre
... ...
Soit la table de pages : 03D52 00031
03D53 02B7A
... ...

Question 7
Donnez l’adresse physique correspondant à l’adresse logique :
5D 04 31 FF

Réponse
Rappel : adresse linéaire = 03 D5 34 80, cadres de 4 Ko
Les 20 premiers bits donnent le décalage : 03D53
0000 0011 1101 1001 0011 0100 1000 0000

Info32b Systèmes d’Exploitation Nicolas Sabouret 30/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Pagination
page cadre
... ...
Soit la table de pages : 03D52 00031
03D53 02B7A
... ...

Question 7
Donnez l’adresse physique correspondant à l’adresse logique :
5D 04 31 FF

Réponse
Remplacer le numéro de page par le numéro de cadre :
03 D5 34 80 → 02 B7 A4 80

Info32b Systèmes d’Exploitation Nicolas Sabouret 30/32


Segmentation simple Segmentation avec pagination Conclusion
Principe Exemples Exercice

Exercice

Pagination
page cadre
... ...
Soit la table de pages : 03D52 00031
03D53 02B7A
... ...

Question 7
Donnez l’adresse physique correspondant à l’adresse logique :
5D 04 31 FF

Réponse
Remplacer le numéro de page par le numéro de cadre :
03 D5 34 80 → 02 B7 A4 80

Ü 02 B7 A4 80 (adresse physique)
Info32b Systèmes d’Exploitation Nicolas Sabouret 30/32
Segmentation simple Segmentation avec pagination Conclusion

Plan

1 Segmentation simple

2 Segmentation avec pagination

3 Conclusion

Info32b Systèmes d’Exploitation Nicolas Sabouret 31/32


Segmentation simple Segmentation avec pagination Conclusion

Ce qu’il faut retenir

Segmentation : n° de segment → base, décalage


Erreur de segmentation
Table des descripteurs
Partage de segments
Niveau de protection (RW) des segments
Segmentation avec pagination : séquence d’accès aux tables

Info32b Systèmes d’Exploitation Nicolas Sabouret 32/32

Vous aimerez peut-être aussi