Combien de processus sont en mémoire à un moment donné [fermé]

-1

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?

glen4096
la source
La façon dont les processus sont chargés en mémoire n'a rien à voir avec la façon dont les processus sont planifiés.
David Schwartz
Cette question dépend du système d'exploitation. Ce que vous décrivez fait partie de ce que fait le système d'exploitation. Je dirais que, pourvu que la mémoire soit suffisante et que les processus modernes du système d'exploitation restent en mémoire jusqu'à ce qu'ils se terminent
Doug Watkins

Réponses:

1

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.

David Schwartz
la source
Par "processus", j'entends des pages de mémoire constituant l'espace d'adressage du processus. Plusieurs de ces «espaces adresse de processus» peuvent-ils être résidents simultanément dans la mémoire physique? ou un seul?
glen4096
Les pages peuvent être résidentes de n'importe quelle combinaison de processus. Les pages peuvent même être des résidents qui ne sont mappés par aucun processus. L'un n'a fondamentalement rien à voir avec l'autre. Les processus utilisent des pages, ce qui les force à devenir résidents en mémoire. Ils restent résidents jusqu'à ce que le système d'exploitation veuille utiliser cette page physique pour autre chose ou ne puisse plus jamais y accéder.
David Schwartz
0

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:

  • Registres = mémoire de travail (notre buffer contenant les informations que nous expérimentons dès maintenant , quelques millisecondes après le fait)
  • ALU = seuil de fin du processus (dernière chose que nous faisons avec cette mémoire)
  • Produit / Sortie = conscience (le résultat du processus)

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é.

Louis
la source
0

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.

Jamie Hanrahan
la source