J'étudie la gestion de la mémoire du système d'exploitation, et je souhaite vérifier que le mécanisme de base de l'allocation \ mémoire virtuelle \ pagination est correct.systèmes d'exploitation gestion de la mémoire - invocation malloc()
Supposons qu'un processus appelle malloc(), que se passe-t-il derrière les scènes? ma réponse: La bibliothèque d'exécution trouve un bloc de mémoire de taille appropriée dans son espace d'adresse mémoire virtuel. (Ceci est où des algorithmes d'allocation tels que première forme, meilleur ajustement qui traitent de la fragmentation entrent en jeu)
Maintenant, disons que le processus accède que la mémoire, comment est-ce fait? ma réponse: L'adresse mémoire, vue par le processus, est en fait virtuelle. Le système d'exploitation vérifie si cette adresse est actuellement mappée à une adresse de mémoire physique et, le cas échéant, effectue l'accès. Si elle n'est pas mappée, une erreur de page est déclenchée.
Est-ce que je comprends bien? c'est-à-dire que la bibliothèque compilateur \ runtime est responsable de l'allocation des blocs de mémoire virtuelle, et que le système d'exploitation est en charge d'un mappage entre l'adresse virtuelle et les adresses physiques des processus (et l'algorithme de pagination).
Merci!