Un processus peut utiliser jusqu'à 4 Go de mémoire virtuelle (y compris l'utilisateur et le noyau), mais lorsqu'il n'utilise pas de mémoire virtuelle, dispose-t-il du noyau et de la mémoire utilisateur en RAM?
Un processus peut utiliser jusqu'à 4 Go de mémoire virtuelle (y compris l'utilisateur et le noyau), mais lorsqu'il n'utilise pas de mémoire virtuelle, dispose-t-il du noyau et de la mémoire utilisateur en RAM?
L'utilisation de la mémoire virtuelle n'est pas facultative, une application ne peut pas l'éviter. Supposons que nous parlons de mémoire protégée x86, utilisée par la plupart des systèmes d’exploitation actuels tels que Linux, OS X et Windows sur x86.
En gros, chaque processus voit un espace d'adressage virtuel (VAS) de 4 Go. Le système d'exploitation, en conjonction avec le matériel, configure des tables de descripteur de page (PDT) décrivant la manière dont ce serveur virtuel est mappé, avec une granularité de page (généralement 4 Ko). Une page peut être mappée sur la mémoire physique, elle peut être mappée sur un fichier (ce qui signifie que lorsque le processus tente de lire cette partie du VAS, il s’enfonce dans le système d’exploitation qui lira ensuite la page à partir du fichier sur disque et placez-le en mémoire), ou il ne sera peut-être pas mappé du tout. Dans ce cas, essayer d'accéder à cette partie du VAS provoquera le blocage du processus. De plus, pendant que la mémoire du noyau est mappée dans le processus, le processus ne peut pas y accéder directement et se bloquera s'il tente de le faire.
De plus, le système d'exploitation peut utiliser un fichier de page ou une partition d'échange, ce qui permet au système d'exploitation de déplacer des pages de mémoire moins utilisées sur le disque et d'utiliser la mémoire à des fins plus utiles. Là encore, si cela se produit, le PDT doit être mis à jour en conséquence, et comme pour les fichiers mappés en mémoire, si le processus tente d'accéder aux pages qui ont été permutées, il sera intercepté dans le système d'exploitation, ce qui ramènera la page en mémoire. (Bien que la capacité d’échange soit souvent confondue avec la mémoire virtuelle en soi, l’idée fondamentale de la mémoire virtuelle est le concept des adresses virtuelles distinctes des adresses de la mémoire physique.)