Information Technology Reference
In-Depth Information
L'allocation des segments en mémoire centrale s'effectue selon le même principe
que pour l'allocation de partitions variables. Pour allouer un segment de taille t, il
faut trouver une zone libre dont la taille soit au moins égale à la taille du segment.
Elle engendre les mêmes problèmes de fragmentation externe.
Protection de l'espace d'adressage d'un processus
Des bits de protection sont associés à chaque segment de l'espace d'adressage du
processus et permettent ainsi de définir le type d'accès autorisés au segment. Ces
bits de protection sont mémorisés pour chaque segment, dans la table des segments
du processus. Classiquement, 3 bits sont utilisés pour définir respectivement l'auto-
risation d'accès en lecture (r), écriture (w) et exécution (x).
Lors d'un accès à un segment, la cohérence du type d'accès avec les droits asso-
ciés au segment est vérifiée et une trappe est levée par le système d'exploitation si le
type d'accès réalisé est interdit.
Par ailleurs, chaque processus ne peut avoir accès qu'à sa propre table des
segments et donc à ses propres segments. De ce fait, chaque espace d'adressage est
protégé vis-à-vis des accès des autres processus. Pour que deux processus puissent
partager un ensemble de segments, il faut que chacun des deux processus référence
cet ensemble de segments dans sa table des segments respective.
Pagination des segments
Une solution, très largement répandue, au problème de la fragmentation externe, est
de combiner pagination et segmentation, c'est-à-dire de paginer les segments.
Dans le cas où pagination et segmentation sont simultanément employées, une
table des segments est définie pour chaque espace d'adressage de processus. Chaque
segment est à son tour paginé, il existe donc une table des pages pour chaque segment.
Ainsi une entrée de la table des segments ne contient plus l'adresse du segment
correspondant en mémoire physique mais contient l'adresse de la table des pages en
mémoire physique pour ce segment.
L'adresse d'un octet dans l'espace d'adressage du processus devient un couple
<
s, d
>
, le déplacement d étant à son tour interprété comme étant un couple
<
numéro
de page p, déplacement d' dans cette page
. Les mécanismes de traduction de l'adresse
logique vers l'adresse physique concernant la segmentation et la pagination se super-
posent l'un à l'autre. Ainsi (figure 13.18) :
- s est comparé à la valeur max_s contenue dans le registre STLR. Si s est supérieur
à cette valeur, alors une trappe est levée car le segment adressé n'existe pas ;
- sinon s est additionné au contenu du registre LTBR de manière à indexer l'entrée
de la table concernant le segment s. On récupère alors l'adresse d'implantation adr_t
de la table des pages du segment s en mémoire centrale ;
- le déplacement d est alors décomposé en un numéro de page p et un déplacement
d' dans la page p. Le numéro de page p est ajouté à l'adresse adr_t de la table des
pages du segment s pour indexer dans la table l'entrée concernant la page p.
>
 
Search WWH ::




Custom Search