• Aucun résultat trouvé

Syst` emes d’Exploitation Cours 8/13 : M´ emoire segment´ ee

N/A
N/A
Protected

Academic year: 2022

Partager "Syst` emes d’Exploitation Cours 8/13 : M´ emoire segment´ ee"

Copied!
80
0
0

Texte intégral

(1)

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

(2)

Segmentation simple Segmentation avec pagination Conclusion

Plan

1 Segmentation simple

2 Segmentation avec pagination

3 Conclusion

(3)

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

(4)

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)

(5)

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 . . .

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

?!

(12)

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

?!

(13)

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)

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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 --- --- ---

(28)

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 --- --- ---

(29)

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 emoire logique processus 0

base limite

0 3000 1000

1 4000 5F21

Table des segments Processus 0

main

segment 0

stdio

segment 1 emoire logique processus 1

base limite

0 A7D3 1000

1 4000 5F21

Table des segments Processus 0

(30)

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

(31)

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

(32)

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 !

(33)

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) :

Fragmentationperte de m´emoire

efragmentationperte de temps `a l’ex´ecution Solution ?

Solution

Segmentation avec pagination

(34)

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) :

Fragmentationperte de m´emoire

efragmentationperte de temps `a l’ex´ecution

Solution

Segmentation avec pagination

(35)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Plan

1 Segmentation simple

2 Segmentation avec pagination Principe

Exemples Exercice

3 Conclusion

(36)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Principe g´en´eral Id´ee

Paginer les segments

Ü eduit la fragmentation et les probl`eme d’allocation Ü Permet le partage et l’adressage des segments Adresse logique = s´electeur + d´ecalage1

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

(37)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Principe g´en´eral Id´ee

Paginer les segments

Ü eduit la fragmentation et les probl`eme d’allocation Ü Permet le partage et l’adressage des segments Adresse logique = s´electeur + d´ecalage1

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

(38)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Impl´ementation : MMU

UC

RAM

adresse logique electeur ecalage

Table des descripteurs

limite base

segfault +

adresse lin´eaire

epertoire page ecalage’

epertoire des pages Table de pages

cadredepage

adresse physique

(39)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Impl´ementation : MMU

UC

RAM adresse logique

electeur ecalage

Table des descripteurs

limite base

segfault +

adresse lin´eaire

epertoire page ecalage’

epertoire des pages Table de pages

cadredepage

adresse physique

(40)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Impl´ementation : MMU

UC

RAM adresse logique

electeur ecalage

Table des descripteurs

limite base

segfault +

adresse lin´eaire

epertoire page ecalage’

epertoire des pages Table de pages

cadredepage

adresse physique

(41)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Impl´ementation : MMU

UC

RAM adresse logique

electeur ecalage

Table des descripteurs

limite base

segfault

+

adresse lin´eaire

epertoire page ecalage’

epertoire des pages Table de pages

cadredepage

adresse physique

(42)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Impl´ementation : MMU

UC

RAM adresse logique

electeur ecalage

Table des descripteurs

limite base

segfault +

adresse lin´eaire

epertoire page ecalage’

epertoire des pages Table de pages

cadredepage

adresse physique

(43)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Impl´ementation : MMU

UC

RAM adresse logique

electeur ecalage

Table des descripteurs

limite base

segfault +

adresse lin´eaire

epertoire page ecalage’

epertoire des pages

Table de pages

cadredepage

adresse physique

(44)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Impl´ementation : MMU

UC

RAM adresse logique

electeur ecalage

Table des descripteurs

limite base

segfault +

adresse lin´eaire

epertoire page ecalage’

epertoire des pages Table de pages

cadredepage

adresse physique

(45)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Impl´ementation : MMU

UC

RAM adresse logique

electeur ecalage

Table des descripteurs

limite base

segfault +

adresse lin´eaire

epertoire page ecalage’

epertoire des pages Table de pages

cadredepage

adresse physique

(46)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Impl´ementation : MMU

UC

RAM adresse logique

electeur ecalage

Table des descripteurs

limite base

segfault +

adresse lin´eaire

epertoire page ecalage’

epertoire des pages Table de pages

cadredepage

adresse physique

(47)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Impl´ementation : MMU

UC

RAM adresse logique

electeur ecalage

Table des descripteurs

limite base

segfault +

adresse lin´eaire

epertoire page ecalage’

epertoire des pages Table de pages

cadredepage

adresse physique

(48)

Segmentation simple Segmentation avec pagination Conclusion Principe Exemples Exercice

Impl´ementation : MMU

UC

RAM adresse logique

electeur ecalage

Table des descripteurs

limite base

segfault +

adresse lin´eaire

epertoire page ecalage’

epertoire des pages Table de pages

cadredepage

adresse physique

(49)

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

(50)

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

(51)

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

(52)

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)

(53)

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 epertoire = 210×32 bits = 4Ko

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

12 bits d´ecalage

(54)

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 epertoire = 210×32 bits = 4Ko

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

12 bits d´ecalage

(55)

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

(56)

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

(57)

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

(58)

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

(59)

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

(60)

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

(61)

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

(62)

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

(63)

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)

(64)

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)

(65)

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

(66)

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

(67)

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.

(68)

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.

(69)

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

(70)

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)

(71)

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 FF05 DD 24

→pas d’erreur de segmentation

(72)

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)

(73)

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

(74)

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

(75)

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

(76)

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

(77)

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 8002 B7 A4 80

Ü 02 B7 A4 80(adresse physique)

(78)

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 8002 B7 A4 80

Ü 02 B7 A4 80(adresse physique)

(79)

Segmentation simple Segmentation avec pagination Conclusion

Plan

1 Segmentation simple

2 Segmentation avec pagination

3 Conclusion

(80)

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

Références

Documents relatifs

Montrer que le syst`eme (S) poss`ede soit une infinit´e de solutions, soit aucune

Exercice 3: Sur un système avec 224 octets de mémoire physique qui utilise la pagination simple, 256 pages dans l’espace d’adressage logique et une taille de page de 1024

10 par une autre m´ethode obtenue dans [46] MMW en d´eveloppant une id´ee introduite dans [29]. Enfin, il pose la question du retour expo- Grunbaum nentiel vers l’´equilibre pour

– Il ne peut y avoir plus d’un processus dans sa section critique en mˆeme temps – Un processus en dehors de sa section critique ne peut bloquer un autre

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 1 /

– Obligation de publier les sources (pas de module binaire dans le noyau) – Pas adapt´e aux syst`emes `a taille m´emoire tr`es

3 Programmation d’un syst `eme embarqu ´e La compilation crois

Nous avons pour les syst` emes diff´ erentiels un th´ eor` eme de Cauchy-Lipschitz, en tout point semblable ` a celui ´ enonc´ e pour les ´ equations diff´ erentielles :.. Th´ eor`