Segmentation simple Segmentation avec pagination Conclusion
Syst` emes d’Exploitation Cours 8/13 : M´ emoire segment´ ee
Nicolas Sabouret
Universit´e Paris-Sud Licence 3 - semestre S5
Segmentation simple Segmentation avec pagination Conclusion
Plan
1 Segmentation simple
2 Segmentation avec pagination
3 Conclusion
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Plan
1 Segmentation simple Principe g´en´eral Mise en œuvre Avantages et limites
2 Segmentation avec pagination
3 Conclusion
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Limite de la m´emoire pagin´ee D´ecoupage des processus
Taille arbitraire (2nb bits cadre)
Ü Peut couper une portion de code, un bloc de donn´ees. . . Fragmentation r´esiduelle (2nb bits cadre−1×nb proc)
Chargement d’une page Plein de donn´ees inutiles
Pas forc´ement tout ce dont on a besoin
Id´ee
D´ecouper en tenant compte de la structure du processus ! (code + donn´ees)
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
M´emoire segment´ee
Principe g´en´eral
Structurer la m´emoire en blocs de donn´ees/routines ind´ependants :
Exemples Pile
Table des symboles Programme principal Fonction
Biblioth`eque . . .
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Structure en segments
Espace d’adressage logique
Processus
segment 0
base
offset
Routine printf x86 (stdio)
mov eax, 4 ; Appel de sys write mov ebx, 1 ; Sortie standard STDOUT mov ecx, Buffer ; Chaine `a afficher mov edx, BufferSize ; Taille de la chaine int 80h ; Interruption du kernel mov eax, 1 ; Appel de sys exit mov ebx, 0 ; Code de retour int 80h ; Interruption du kernel
offset
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Structure en segments
Espace d’adressage logique processus
main stub pile tableau
segment 0
base
offset
Routine printf x86 (stdio)
mov eax, 4 ; Appel de sys write mov ebx, 1 ; Sortie standard STDOUT mov ecx, Buffer ; Chaine `a afficher mov edx, BufferSize ; Taille de la chaine int 80h ; Interruption du kernel mov eax, 1 ; Appel de sys exit mov ebx, 0 ; Code de retour int 80h ; Interruption du kernel
offset
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Structure en segments
Espace d’adressage logique processus
main stub pile tableau
segment 0
base
offset
Routine printf x86 (stdio)
mov eax, 4 ; Appel de sys write mov ebx, 1 ; Sortie standard STDOUT mov ecx, Buffer ; Chaine `a afficher mov edx, BufferSize ; Taille de la chaine int 80h ; Interruption du kernel mov eax, 1 ; Appel de sys exit mov ebx, 0 ; Code de retour int 80h ; Interruption du kernel
offset
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Structure en segments
Espace d’adressage logique processus
main stub pile tableau
segment 0
base
offset
Routine printf x86 (stdio)
mov eax, 4 ; Appel de sys write mov ebx, 1 ; Sortie standard STDOUT mov ecx, Buffer ; Chaine `a afficher mov edx, BufferSize ; Taille de la chaine int 80h ; Interruption du kernel mov eax, 1 ; Appel de sys exit mov ebx, 0 ; Code de retour int 80h ; Interruption du kernel
offset
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Structure en segments
Espace d’adressage logique processus
main stub pile tableau
segment 0
base
offset
Routine printf x86 (stdio)
mov eax, 4 ; Appel de sys write mov ebx, 1 ; Sortie standard STDOUT mov ecx, Buffer ; Chaine `a afficher mov edx, BufferSize ; Taille de la chaine int 80h ; Interruption du kernel mov eax, 1 ; Appel de sys exit mov ebx, 0 ; Code de retour int 80h ; Interruption du kernel
offset
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Adressage
Adresse logique
Num´ero de segment (selecteur)+ d´ecalage
R´esolution
Memory Management Unit
Transformer segment + d´ecalage en adresse physique V´erifier que le d´ecalage ne sort pas du segment
→ erreur de segmentation
segment
offset
?!
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Adressage
Adresse logique
Num´ero de segment (selecteur)+ d´ecalage
R´esolution
Memory Management Unit
Transformer segment + d´ecalage en adresse physique V´erifier que le d´ecalage ne sort pas du segment
→ erreur de segmentation
segment
offset
?!
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Construction des segments A la compilation`
Ü d´ependant du langage
Chaque segment est r´ef´erenc´e par un num´ero
→table des segments (1 par processus)
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Construction des segments A la compilation`
Ü d´ependant du langage
Chaque segment est r´ef´erenc´e par un num´ero
→table des segments (1 par processus)
Exemple : Java M´ethodes
Tas (fonctions, attributsstatic) Pile (1 pour chaque thread) Class loader
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Construction des segments A la compilation`
Ü d´ependant du langage
Chaque segment est r´ef´erenc´e par un num´ero
→table des segments (1 par processus)
Exemple : C
Variables globales (tas)
Fonctions de biblioth`eques (1 par biblioth`eque) Programme principal et pile
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
R´esolution d’adresse Principe
G´er´e au niveau de la MMU
Num´ero de segment (selecteur) → adresse de base Base + d´ecalage→ adresse physique
Erreurs de segmentations
Table des segments Pour chaque segment :
Base = adresse physique de d´epart Limite = tailledu segment
. . .aussi appel´ee : table desdescripteurs
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
R´esolution d’adresse Principe
G´er´e au niveau de la MMU
Num´ero de segment (selecteur) → adresse de base Base + d´ecalage→ adresse physique
Erreurs de segmentations
Table des segments Pour chaque segment :
Base = adresse physique de d´epart Limite = tailledu segment
. . .aussi appel´ee : table desdescripteurs
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
R´esolution d’adresse
UC
Memory Management Unit
table des segments
seg. base limite
00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
. . . . . . . . .
RAM
adresse logique
num´ero de segment d´ecalage
≤
Interruption erreur de segmentation
NON
OUI +
adresse physique
base
d´ecalage
limite
segment
Ce que fait la somme
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
R´esolution d’adresse
UC
Memory Management Unit
table des segments
seg. base limite
00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
. . . . . . . . .
RAM
adresse logique
num´ero de segment d´ecalage
≤
Interruption erreur de segmentation
NON
OUI +
adresse physique
base
d´ecalage
limite
segment
Ce que fait la somme
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
R´esolution d’adresse
UC
Memory Management Unit
table des segments
seg. base limite
00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
. . . . . . . . .
RAM
adresse logique
num´ero de segment d´ecalage
≤
Interruption erreur de segmentation
NON
OUI +
adresse physique
base
d´ecalage
limite
segment
Ce que fait la somme
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
R´esolution d’adresse
UC
Memory Management Unit
table des segments
seg. base limite
00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
. . . . . . . . .
RAM
adresse logique
num´ero de segment d´ecalage
≤
Interruption erreur de segmentation
NON
OUI +
adresse physique
base
d´ecalage
limite
segment
Ce que fait la somme
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
R´esolution d’adresse
UC
Memory Management Unit
table des segments
seg. base limite
00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
. . . . . . . . .
RAM
adresse logique
num´ero de segment d´ecalage
≤
Interruption erreur de segmentation
NON
OUI +
adresse physique
base
d´ecalage
limite
segment
Ce que fait la somme
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
R´esolution d’adresse
UC
Memory Management Unit
table des segments
seg. base limite
00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
. . . . . . . . .
RAM
adresse logique
num´ero de segment d´ecalage
≤
Interruption erreur de segmentation
NON
OUI +
adresse physique
base
d´ecalage
limite
segment
Ce que fait la somme
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
R´esolution d’adresse
UC
Memory Management Unit
table des segments
seg. base limite
00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
. . . . . . . . .
RAM
adresse logique
num´ero de segment d´ecalage
≤
Interruption erreur de segmentation
NON
OUI +
adresse physique
base
d´ecalage
limite
segment
Ce que fait la somme
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
R´esolution d’adresse
UC
Memory Management Unit
table des segments
seg. base limite
00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
. . . . . . . . .
RAM
adresse logique
num´ero de segment d´ecalage
≤
Interruption erreur de segmentation
NON
OUI +
adresse physique
base
d´ecalage
limite
segment
Ce que fait la somme
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
R´esolution d’adresse
UC
Memory Management Unit
table des segments
seg. base limite
00 0275 BC31 0913
01 0281 2AC6 6D78
02 0000 AA6F 006F
03 0103 B5D1 045E
04 0275 B31E 00B1
. . . . . . . . .
RAM
adresse logique
num´ero de segment d´ecalage
≤
Interruption erreur de segmentation
NON
OUI +
adresse physique
base
d´ecalage
limite
segment
Ce que fait la somme
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Manipulation de nombre hexad´ecimaux
Il faut savoir comparer deux nombres en hexad´ecimal C’est moins naturel qu’avec des entiers d´ecimaux. . .
Triez les nombres suivants par ordre croissant : 0AB5C 9F6E 5E342 54E32 53E42
Il faut savoir additionner deux nombres en hexad´ecimal Comme `a l’´ecole : il faut poser en colonne !
6A B5 C8 F526A FF 5E 4B C2
+ 73 82 21 + 6BD12 + 21 FD AA DB --- --- ---
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Manipulation de nombre hexad´ecimaux
Il faut savoir comparer deux nombres en hexad´ecimal C’est moins naturel qu’avec des entiers d´ecimaux. . .
Triez les nombres suivants par ordre croissant : 0AB5C 9F6E 5E342 54E32 53E42
Il faut savoir additionner deux nombres en hexad´ecimal Comme `a l’´ecole : il faut poser en colonne !
6A B5 C8 F526A FF 5E 4B C2
+ 73 82 21 + 6BD12 + 21 FD AA DB --- --- ---
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Segmentation : premier avantage Partage de segments
Un mˆeme segment (de code) utilis´e par plusieurs processus
Exemple : biblioth`eques
1 segment pour la biblioth`eque
N processus utilisent le mˆeme segment
RAM main 0
stdio
main 1
main
segment 0
stdio
segment 1 M´emoire logique processus 0
base limite
0 3000 1000
1 4000 5F21
Table des segments Processus 0
main
segment 0
stdio
segment 1 M´emoire logique processus 1
base limite
0 A7D3 1000
1 4000 5F21
Table des segments Processus 0
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Partage de segments Probl`eme
R´esolution d’adresse des segments partag´es Appel de routine = saut d’adresse Utilisation destub : code rempla¸cable
→Adresse d´efinie lors du premierchargement de la biblioth`eque !
Protection
Les segments peuvent ˆetre marqu´e Read,WriteouReadWrite.
→bit de protectiondans la table des segments
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Partage de segments Probl`eme
R´esolution d’adresse des segments partag´es Appel de routine = saut d’adresse Utilisation destub : code rempla¸cable
→Adresse d´efinie lors du premierchargement de la biblioth`eque !
Protection
Les segments peuvent ˆetre marqu´e Read,WriteouReadWrite.
→bit de protectiondans la table des segments
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Segmentation : avantages Gestion des tableaux 1 tableau = 1 segment
Ü v´erification automatique des d´ebordements
peu utilis´e en pratique. . .
Partage de code
3 Biblioth`eques, processus multi-utilisateurs 7 Plus difficile qu’avec la pagination (stub)
3 . . . mais r´esolu `a la compilation + chargement par l’OS
Protection de la m´emoire
Ü Par segment etpar processus !
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Segmentation : limite
Taille des segments variables
Ü On retombe sur le probl`eme de l’allocation contig¨ue (voir cours 5) :
Fragmentation→perte de m´emoire
D´efragmentation→perte de temps `a l’ex´ecution Solution ?
Solution
Segmentation avec pagination
Segmentation simple Segmentation avec pagination Conclusion Principe g´en´eral Mise en œuvre Avantages et limites
Segmentation : limite
Taille des segments variables
Ü On retombe sur le probl`eme de l’allocation contig¨ue (voir cours 5) :
Fragmentation→perte de m´emoire
D´efragmentation→perte de temps `a l’ex´ecution
Solution
Segmentation avec pagination
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Plan
1 Segmentation simple
2 Segmentation avec pagination Principe
Exemples Exercice
3 Conclusion
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Principe g´en´eral Id´ee
Paginer les segments
Ü R´eduit la fragmentation et les probl`eme d’allocation Ü Permet le partage et l’adressage des segments Adresse logique = s´electeur + d´ecalage1
r´esolu par segmentation donne :
Adresse lin´eaire= (r´epertoire +)1 page + d´ecalage2
Adresse physique = cadre de page + d´ecalage2
M´emory Management Unit
Table desdescripteurs : adresse logique→ adresse lin´eaire R´epertoire1 + table des pages : adresse lin´eaire → physique
1si pagination `a 2 niveaux
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Principe g´en´eral Id´ee
Paginer les segments
Ü R´eduit la fragmentation et les probl`eme d’allocation Ü Permet le partage et l’adressage des segments Adresse logique = s´electeur + d´ecalage1
r´esolu par segmentation donne :
Adresse lin´eaire= (r´epertoire +)1 page + d´ecalage2
Adresse physique = cadre de page + d´ecalage2
M´emory Management Unit
Table desdescripteurs : adresse logique→ adresse lin´eaire R´epertoire1 + table des pages : adresse lin´eaire → physique
1si pagination `a 2 niveaux
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Impl´ementation : MMU
UC
RAM
adresse logique s´electeur d´ecalage
Table des descripteurs
limite base
≤
segfault +
adresse lin´eaire
r´epertoire page d´ecalage’
R´epertoire des pages Table de pages
cadredepage
adresse physique
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Impl´ementation : MMU
UC
RAM adresse logique
s´electeur d´ecalage
Table des descripteurs
limite base
≤
segfault +
adresse lin´eaire
r´epertoire page d´ecalage’
R´epertoire des pages Table de pages
cadredepage
adresse physique
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Impl´ementation : MMU
UC
RAM adresse logique
s´electeur d´ecalage
Table des descripteurs
limite base
≤
segfault +
adresse lin´eaire
r´epertoire page d´ecalage’
R´epertoire des pages Table de pages
cadredepage
adresse physique
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Impl´ementation : MMU
UC
RAM adresse logique
s´electeur d´ecalage
Table des descripteurs
limite base
≤ segfault
+
adresse lin´eaire
r´epertoire page d´ecalage’
R´epertoire des pages Table de pages
cadredepage
adresse physique
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Impl´ementation : MMU
UC
RAM adresse logique
s´electeur d´ecalage
Table des descripteurs
limite base
≤
segfault +
adresse lin´eaire
r´epertoire page d´ecalage’
R´epertoire des pages Table de pages
cadredepage
adresse physique
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Impl´ementation : MMU
UC
RAM adresse logique
s´electeur d´ecalage
Table des descripteurs
limite base
≤
segfault +
adresse lin´eaire
r´epertoire page d´ecalage’
R´epertoire des pages
Table de pages
cadredepage
adresse physique
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Impl´ementation : MMU
UC
RAM adresse logique
s´electeur d´ecalage
Table des descripteurs
limite base
≤
segfault +
adresse lin´eaire
r´epertoire page d´ecalage’
R´epertoire des pages Table de pages
cadredepage
adresse physique
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Impl´ementation : MMU
UC
RAM adresse logique
s´electeur d´ecalage
Table des descripteurs
limite base
≤
segfault +
adresse lin´eaire
r´epertoire page d´ecalage’
R´epertoire des pages Table de pages
cadredepage
adresse physique
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Impl´ementation : MMU
UC
RAM adresse logique
s´electeur d´ecalage
Table des descripteurs
limite base
≤
segfault +
adresse lin´eaire
r´epertoire page d´ecalage’
R´epertoire des pages Table de pages
cadredepage
adresse physique
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Impl´ementation : MMU
UC
RAM adresse logique
s´electeur d´ecalage
Table des descripteurs
limite base
≤
segfault +
adresse lin´eaire
r´epertoire page d´ecalage’
R´epertoire des pages Table de pages
cadredepage
adresse physique
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Impl´ementation : MMU
UC
RAM adresse logique
s´electeur d´ecalage
Table des descripteurs
limite base
≤
segfault +
adresse lin´eaire
r´epertoire page d´ecalage’
R´epertoire des pages Table de pages
cadredepage
adresse physique
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Architectures x386 Intel 80386
Architecture propos´ee en 1986, jusque dans les ann´ees 2000 Processeur CISC (Complex Instruction Set) 32 bits Instruction surplusieurs mots de 32 bits
Adressage physique sur 32 bits Ü RAM max = 4Go
En 1986, la RAM ´etait autour de 1Mo :
640k should be enough for everyone. . .
M´emoire virtuelle 4 Go par processus
Ü Chaque processus adresse potentiellement l’ensemble de la RAM
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Architectures x386 Segmentation
214 segments par processus (16 384 segments) 213 segmentsglobaux(8 192 segments)
→segments partag´es entre plusieurs processus (ex : biblioth`eques)
213 segmentslocaux(8 192 segments)
→donn´ees et code propre au processus
Taille maximale du segment = 216 octets (256 Ko)
→max 4Go par processus
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Architectures x386 Segmentation
214 segments par processus (16 384 segments) 213 segmentsglobaux(8 192 segments)
→segments partag´es entre plusieurs processus (ex : biblioth`eques)
213 segmentslocaux(8 192 segments)
→donn´ees et code propre au processus
Taille maximale du segment = 216 octets (256 Ko)
→max 4Go par processus
Adresse logique 16 bits s´electeur=
13 bits num´ero de segment + 1 bit global/local + 2 bits read-write
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Architectures x386 Segmentation
214 segments par processus (16 384 segments) 213 segmentsglobaux(8 192 segments)
→segments partag´es entre plusieurs processus (ex : biblioth`eques)
213 segmentslocaux(8 192 segments)
→donn´ees 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)
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Architectures x386
Pagination
Adresse lin´eaire sur32 bits
base (32 bits) + d´ecalage (16 bits)→32 bits
Pages de4Ko (212 octets) Pagination `a 2 niveaux
Adresse lin´eaire
10 bits r´epertoire r´epertoire = 210×32 bits = 4Ko
10 bits page une table = 210×20 bits'2Ko
12 bits d´ecalage
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Architectures x386
Pagination
Adresse lin´eaire sur32 bits
base (32 bits) + d´ecalage (16 bits)→32 bits
Pages de4Ko (212 octets) Pagination `a 2 niveaux
Adresse lin´eaire
10 bits r´epertoire r´epertoire = 210×32 bits = 4Ko
10 bits page une table = 210×20 bits'2Ko
12 bits d´ecalage
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Segmentation
L’OS r´eduit la capacit´e de segmentation
Ü permet d’ˆetre compatible avec plusieurs architectures
Exemple
Linux≥2.0 sur architecture 80386 (32 bit) Ü 2 niveauxRW (user/kernel) au lieu de 4 !
00=noyau, 11=utilisateur
Ü 4 types de segments : Code
Donn´ees
Etat du processus (PCB) = 1 seul segment´
Table des descripteurs (du processus) = 1 seul segment
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ˆeme principe
Ü ajout d’un cache, plus grand jeu d’instruction
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
´Enonc´e g´en´eral
On se place dans un syst`eme de m´emoire de 1Go de m´emoire g´er´e de mani`ere pagin´ee et segment´ee avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’`a 1024 segments. Chaque segment peut occuper 4Mo de m´emoire. Le syst`eme d’exploitation autorise jusqu’`a 1024 processus.
Question 1
Quelle est la taille (en bits) de l’adresse logique ?
R´eponse
210 segments de 222 octets → 232 octets Ü 32 bits
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
´Enonc´e g´en´eral
On se place dans un syst`eme de m´emoire de 1Gode m´emoire g´er´e de mani`ere pagin´ee et segment´ee avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’`a1024 segments. Chaque segment peut occuper4Mode m´emoire. Le syst`eme d’exploitation autorise jusqu’`a1024 processus.
Question 1
Quelle est la taille (en bits) de l’adresse logique ?
R´eponse
210 segments de 222 octets → 232 octets Ü 32 bits
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
´Enonc´e g´en´eral
On se place dans un syst`eme de m´emoire de 1Gode m´emoire g´er´e de mani`ere pagin´ee et segment´ee avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’`a1024 segments. Chaque segment peut occuper4Mode m´emoire. Le syst`eme d’exploitation autorise jusqu’`a1024 processus.
Question 1
Quelle est la taille (en bits) de l’adresse logique ?
R´eponse
210 segments de 222 octets → 232 octets Ü 32 bits
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
´Enonc´e g´en´eral
On se place dans un syst`eme de m´emoire de 1Go de m´emoire g´er´e de mani`ere pagin´ee et segment´ee avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’`a1024 segments. Chaque segment peut occuper4Mode m´emoire. Le syst`eme d’exploitation autorise jusqu’`a 1024 processus.
Question 1
Quelle est la taille (en bits) de l’adresse logique ?
R´eponse
210 segments de 222 octets → 232 octets Ü 32 bits
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
´Enonc´e g´en´eral
On se place dans un syst`eme de m´emoire de 1Go de m´emoire g´er´e de mani`ere pagin´ee et segment´ee avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’`a 1024 segments. Chaque segment peut occuper 4Mo de m´emoire. Le syst`eme d’exploitation autorise jusqu’`a 1024 processus.
Question 2
Quelle est la taille (en bits) de l’adresse physique ?
R´eponse
RAM = 230 octets Ü 30 bits
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
´Enonc´e g´en´eral
On se place dans un syst`eme de m´emoire de 1Gode m´emoire g´er´e de mani`ere pagin´ee et segment´ee avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’`a 1024 segments. Chaque segment peut occuper 4Mo de m´emoire. Le syst`eme d’exploitation autorise jusqu’`a 1024 processus.
Question 2
Quelle est la taille (en bits) de l’adresse physique ?
R´eponse
RAM = 230 octets Ü 30 bits
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
´Enonc´e g´en´eral
On se place dans un syst`eme de m´emoire de 1Go de m´emoire g´er´e de mani`ere pagin´ee et segment´ee avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’`a 1024 segments. Chaque segment peut occuper 4Mo de m´emoire. Le syst`eme d’exploitation autorise jusqu’`a 1024 processus.
Question 3
Quelle est la taille (en bits) de l’adresse lin´eaire ?
R´eponse
Il faut pouvoir adresser tout le processus (virtuel) : Ü 32 bits : 20 (page) + 12 (d´ecalage)
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
´Enonc´e g´en´eral
On se place dans un syst`eme de m´emoire de 1Go de m´emoire g´er´e de mani`ere pagin´ee et segment´ee avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’`a 1024 segments. Chaque segment peut occuper 4Mo de m´emoire. Le syst`eme d’exploitation autorise jusqu’`a 1024 processus.
Question 3
Quelle est la taille (en bits) de l’adresse lin´eaire ?
R´eponse
Il faut pouvoir adresser tout le processus (virtuel) : Ü 32 bits : 20 (page) + 12 (d´ecalage)
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
´Enonc´e g´en´eral
On se place dans un syst`eme de m´emoire de 1Go de m´emoire g´er´e de mani`ere pagin´ee et segment´ee avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’`a 1024 segments. Chaque segment peut occuper 4Mo de m´emoire. Le syst`eme d’exploitation autorise jusqu’`a 1024 processus.
Question 4
Combien y a-t-il de cadres dans la RAM
R´eponse 230÷212 = 218
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
´Enonc´e g´en´eral
On se place dans un syst`eme de m´emoire de 1Go de m´emoire g´er´e de mani`ere pagin´ee et segment´ee avec des cadres de page de 4Ko.
Chaque processus peut utiliser jusqu’`a 1024 segments. Chaque segment peut occuper 4Mo de m´emoire. Le syst`eme d’exploitation autorise jusqu’`a 1024 processus.
Question 4
Combien y a-t-il de cadres dans la RAM
R´eponse 230÷212 = 218
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
Question 5 : m´emoire virtuelle
Si chaque processus dispose de la mˆeme proportion de m´emoire physique (allocation ´equitable), avec 256 processus pr´esents en tout dans le syst`eme, quelle est la probabilit´e qu’un processus de 16Mo produise un d´efaut de page ?
R´eponse
Chaque processus dispose de 230÷28 = 222 octets de RAM (4Mo).
Le processus est plus gros (224) : il peut faire un d´efaut de page.
Probabilit´e = 1−222−24 = 0,75.
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
Question 5 : m´emoire virtuelle
Si chaque processus dispose de la mˆeme proportion de m´emoire physique (allocation ´equitable), avec 256 processus pr´esents en tout dans le syst`eme, quelle est la probabilit´e qu’un processus de 16Mo produise un d´efaut de page ?
R´eponse
Chaque processus dispose de 230÷28 = 222 octets de RAM (4Mo).
Le processus est plus gros (224) : il peut faire un d´efaut de page.
Probabilit´e = 1−222−24 = 0,75.
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
Segmentation
Soit la table de descripteurs :
segment limite base
0DE 0A 7E 5F 1D FF A0 21 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´eaire correspondant `a l’adresse logique : 5D 04 31 FF
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
Segmentation
Soit la table de descripteurs :
segment limite base
0DE 0A 7E 5F 1D FF A0 21 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´eaire correspondant `a l’adresse logique : 5D 04 31 FF
R´eponse
Les 10 premiers bits donnent le num´ero de segment.
0101 1101 0000 1000 0011 0001 1111 1111
→0001 0111 0100 = 174 (num´ero de segment)
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
Segmentation
Soit la table de descripteurs :
segment limite base
0DE 0A 7E 5F 1D FF A0 21 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´eaire correspondant `a l’adresse logique : 5D 04 31 FF
R´eponse
ligne174: limite = 05 DD 24
Les 22 derniers bits donnent le d´ecalage :04 31 FF ≤05 DD 24
→pas d’erreur de segmentation
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice
Segmentation
Soit la table de descripteurs :
segment limite base
0DE 0A 7E 5F 1D FF A0 21 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´eaire correspondant `a l’adresse logique : 5D 04 31 FF
R´eponse
ligne174: base = 03 D1 02 81
Les 22 derniers bits donnent le d´ecalage :04 31 FF +03 D1 02 81
→03 D5 34 80(adresse lin´eaire)
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice Pagination
Soit la table de pages :
page cadre
... ...
03D52 00031 03D53 02B7A
... ...
Question 7
Donnez l’adresse physique correspondant `a l’adresse logique : 5D 04 31 FF
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice Pagination
Soit la table de pages :
page cadre
... ...
03D52 00031 03D53 02B7A
... ...
Question 7
Donnez l’adresse physique correspondant `a l’adresse logique : 5D 04 31 FF
R´eponse
Rappel : adresse lin´eaire =03 D5 34 80, cadres de 4 Ko
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice Pagination
Soit la table de pages :
page cadre
... ...
03D52 00031 03D53 02B7A
... ...
Question 7
Donnez l’adresse physique correspondant `a l’adresse logique : 5D 04 31 FF
R´eponse
Rappel : adresse lin´eaire =03 D5 34 80, cadres de 4 Ko Les 12 derniers bits donnent le d´ecalage :480
0000 0011 1101 1001 0011 0100 1000 0000
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice Pagination
Soit la table de pages :
page cadre
... ...
03D52 00031 03D53 02B7A
... ...
Question 7
Donnez l’adresse physique correspondant `a l’adresse logique : 5D 04 31 FF
R´eponse
Rappel : adresse lin´eaire =03 D5 34 80, cadres de 4 Ko Les 20 premiers bits donnent le d´ecalage :03D53
0000 0011 1101 1001 0011 0100 1000 0000
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice Pagination
Soit la table de pages :
page cadre
... ...
03D52 00031 03D53 02B7A
... ...
Question 7
Donnez l’adresse physique correspondant `a l’adresse logique : 5D 04 31 FF
R´eponse
Remplacer le num´ero de page par le num´ero de cadre :
03 D5 34 80 →02 B7 A4 80
Ü 02 B7 A4 80(adresse physique)
Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice
Exercice Pagination
Soit la table de pages :
page cadre
... ...
03D52 00031 03D53 02B7A
... ...
Question 7
Donnez l’adresse physique correspondant `a l’adresse logique : 5D 04 31 FF
R´eponse
Remplacer le num´ero de page par le num´ero de cadre :
03 D5 34 80 →02 B7 A4 80
Ü 02 B7 A4 80(adresse physique)
Segmentation simple Segmentation avec pagination Conclusion
Plan
1 Segmentation simple
2 Segmentation avec pagination
3 Conclusion
Segmentation simple Segmentation avec pagination Conclusion
Ce qu’il faut retenir
Segmentation : n° de segment→base, d´ecalage Erreur de segmentation
Table des descripteurs Partage de segments
Niveau de protection (RW) des segments
Segmentation avec pagination : s´equence d’acc`es aux tables