Question

Je suis un peu confus sur la segmentation pure due à ma tête existait toujours l'idée de la mémoire virtuelle.

Mais si je comprends bien, la segmentation pure imagine également un espace d'adressage virtuel, divisé en segments qui sont tous chargés en RAM.

La différence avec la mémoire virtuelle avec la segmentation est que, éventuellement, il y a du segment que ce n'est pas en RAM.

est-ce correct?

i Ajouter une question: Existe-t-il une différence pratique entre la segmentation combinée à la pagination et à une pagination à deux niveaux?, C'est la même chose à l'exception de la protection "limite" de la méthode de segment.Ou il y a une autre différence?

Était-ce utile?

La solution

Non, ce n'est pas correct. Par exemple, sur x86, la segmentation utilise des pointeurs "loin" composés de deux parties: le sélecteur de segment (chargé dans un registre de segment, par exemple, DS) et un décalage dans le segment. Les décalages de segment commencent toujours à 0. La CPU utilise le sélecteur de segment pour rechercher le descripteur de segment qui contient l'adresse de base linéaire, la longueur et les droits d'accès linéaires du segment. Tous les accès sont vérifiés de longueur; Si vous essayez d'accéder à la mémoire en dehors de la limite de segment ou d'un accès non valide (par exemple, écrire sur un segment en lecture seule), la CPU générera une défaillance de protection générale.

Étant donné que les adresses de segment sont toujours à base de zéro et que la base de segment est implicite dans le sélecteur de segment, le système d'exploitation peut déplacer des segments autour et défragmenter la mémoire sans affecter les programmes à l'aide de ces données. (Contraste cela avec le modèle de mémoire "plat" où si vous déplacez certaines données, vous devez également mettre à jour tous les pointeurs en pointant.)

Maintenant, lorsque la pagination est désactivée, l'adresse de base du segment linéaire est son adresse de mémoire physique. Lorsque la pagination est activée, tous les accès aux données de segment sont traduits par le MMU comme d'habitude.

Autres conseils

Si vous êtes sérieux pour comprendre la gestion de la mémoire à ce niveau, une excellente explication peut être trouvée en lisant Concepts de système d'exploitation de Silberschatz, Galvin et Gagne.Vous devriez être capable de trouver une édition peu coûteuse et plus ancienne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top