Existe-t-il un seul processus en mémoire à la fois et les changements de contexte changent constamment de processus entre DRAM et sur disque? Ou bien plusieurs processus sont-ils conservés simultanément dans la DRAM, et les commutateurs de contexte ne font-ils que changer le processus exécuté par le processeur?
en quoi est-ce différent pour la mémoire virtuelle?
memory-management
glen4096
la source
la source
Réponses:
La question n'a vraiment aucun sens.
Les informations sont chargées et conservées en mémoire en fonction de leur fréquence d'utilisation et des décisions prises par le gestionnaire de mémoire virtuelle. Les processus sont planifiés par le planificateur. L'un n'a rien à voir avec l'autre.
Ce ne sont pas des processus qui sont conservés en mémoire dans les systèmes d'exploitation modernes, ce sont des pages. Et si vous imaginez, par exemple, deux processus exécutant le même exécutable, de nombreuses pages seront partagées et chargées en mémoire, si nécessaire, lorsque l'un ou l'autre des processus y aura accès.
la source
J'ai parfois réfléchi à cela d'un point de vue philosophique en essayant de l'appliquer à l'homme afin de réfléchir à notre expérience d'un processus. J'ai utilisé les ordinateurs comme un analogue pour nous; la conscience est le produit du processus d'information qui vient de la mémoire.
Cela ne m'a pas été utile, mais je pense que cela s'applique à votre question, car dans un cas simple, la réponse serait oui.
Dans le cœur de la CPU, si le processus correspond à l'exécution de la procédure, nous savons que le processeur utilise les données de sa mémoire de registre. Peut-être que ce n'est pas encore assez bas. En approfondissant, au seuil d'exécution lorsque les résultats du processus dans le produit, nous allons voir la fin à l' unité arithmétique et logique . L'ALU a pour fonction d'effectuer une opération sur deux nombres . C'est pourquoi je dis oui, si notre point de vue est limité ici, il n'y a qu'un processus en mémoire à la fois.
Alors:
Ce n’est pas une réponse à la question, mais j’espère pouvoir vous faire réfléchir aux différents niveaux et types de mémoire, et vous rappeler qu’il existe une machine physique au fond. La réponse suppose que l'ALU va enfin terminer le processus à partir de deux entrées et d'un seul résultat. Les processeurs modernes sont probablement trop complexes pour que je puisse même dire combien de sous-ALU potentiellement finales sont en fait à la fin de l'unité.
la source
Des portions d'espaces d'adressage de plusieurs processus peuvent très certainement et sont presque toujours dans la mémoire physique en même temps. Il est très rare que tous les processus d'un processus résident. Il est presque aussi rare qu'aucun d'entre eux ne soit résident. (En fait, sous Windows, étant donné que chaque processus contient une petite quantité d’informations non paginables, c’est impossible. Je ne connais pas les autres systèmes d’exploitation, mais j’attends que ce soit la même chose.)
La mémoire n'est ni invoquée ni exportée à cause du comportement de la planification - sauf que, bien entendu, un thread qui ne s'exécute pas ne provoque pas d'erreur de page; si tous les threads d'un processus ne sont pas en cours d'exécution, il n'y a aucune raison de paginer dans l'un de ses espaces d'adressage virtuels.
À l'inverse, une partie de la mémoire d'un processus inactif peut être récupérée par son système d'exploitation (et éventuellement, mais pas nécessairement, par la mémoire vive) par le système d'exploitation en cas de pénurie de mémoire vive et / ou de taux de défaillance de page élevé.
Vous n'avez pas précisé sur quel système d'exploitation vous vous posiez la question. Sous Windows, dans le Gestionnaire des tâches, onglet "Processus" (Windows Vista et 7) ou "Détails" (Windows 8.x), "Mémoire (groupe de travail privé) vous indiquera la quantité de RAM disponible dans le groupe de travail de chaque processus, for process-private vas La colonne "Mémoire (ensemble de travail partagé)" indique la quantité de mémoire RAM contenue dans les ws de chaque processus et pouvant également figurer dans l'ensemble de travail d'autres processus.
De plus, certaines pages sont généralement associées à chacun des nombreux processus dans les listes de pages modifiées et en attente. La liste de réserve fait partie de ce que Windows indique comme "Disponible", la liste modifiée ne l’est pas. Ceux-ci ne figurent dans aucun des ensembles de travail des processus, mais si les pages virtuelles correspondantes sont altérées, elles peuvent être "paginées" très rapidement, sans passer par le disque.
la source