Mémoire filaire vs mémoire active sous OS X

13

J'ai du mal à comprendre la différence entre la mémoire câblée et la mémoire active sous OS X.

Ne parlez pas des quatre types de mémoire (ne parlez pas de mémoire libre ou inactive, car je sais déjà de quoi il s'agit). Il suffit de comparer et de contraster la mémoire câblée avec la mémoire active afin que je puisse mieux comprendre ces deux éléments.

tony_sid
la source

Réponses:

29

Petit rappel: Pour fournir une meilleure réponse au reste de la communauté, veuillez ne pas dire quelque chose comme «Ne parlez pas des quatre types de mémoire». Même si vous le savez bien, il y a peut-être mille et un citoyens d'Internet qui arrivent ici dans l'espoir d'une réponse collatérale. :)

"Paging" est le terme exact pour l'action suivante. «Échanger» est utilisé familièrement pour «paginer», de manière assez interchangeable ces jours-ci, cependant. «Swapping» se référait à l'origine au déplacement de l'espace mémoire d'un programme sur le «stockage secondaire» (par opposition au «stockage principal», qui est un terme archaïque pour… RAM, d'une certaine manière). La frontière entre la pagination et l'échange est considérablement brouillée par les systèmes Windows et Unix appelant les échanges d'espace de pagination.

Et puis, il faut connaître la pagination pour comprendre le concept de mémoire active, câblée et inactive. La pagination signifie que la page de mémoire est déplacée hors de la mémoire à accès aléatoire (c'est-à-dire la RAM) et sur le disque dur ou un autre périphérique de stockage secondaire. Cela permet à l'application en cours d'exécution de demander plus de mémoire que la quantité totale de RAM système disponible.

Notez que bien que la pagination signifie une énorme pénalité de performance pour accéder à nouveau à ce bit d'informations particulier, la pagination peut se produire dans deux cas différents: (Citant moi-même: inconvénients de ne pas avoir de partition de swap )

  1. Lorsqu'il n'y a pas suffisamment de mémoire pour toutes les applications - dans le cas où cela se produit sur un système sans espace de swap, cela entraînera un échec d'allocation de mémoire pour les nouvelles applications demandant de nouvelles pages de mémoire - et cela se traduit généralement par l'arrêt du programme.
  2. Lorsque certaines pages de la mémoire (la mémoire est divisée en «pages») sont utilisées il y a quelque temps, mais ne sont plus utilisées maintenant, elles sont transférées dans le fichier d'échange et la mémoire restante peut être utilisée pour faire autre chose qui pourrait être plus utile. (par exemple, même la mise en cache!) - lorsque cela se produit dans un système sans espace de swap, les pages inactives resteront en mémoire. Ce n'est cependant pas trop grave, car nous avons beaucoup de mémoire ces jours-ci.

Les quatre types de mémoire sont classés comme suit:

  • Câblé: utilisé par une application qui prétend que le bloc de mémoire alloué doit rester physiquement dans la RAM et ne pas être échangé sur le disque, qu'il soit récemment utilisé ou non, c'est-à-dire qu'une autre application ne peut PAS demander ce bloc de mémoire particulier. Les exemples font partie de la mémoire utilisée par le système et celle utilisée par les machines virtuelles.

  • Actif et inactif: il s'agit de la mémoire utilisée généralement par les applications en mode utilisateur, dans laquelle elles peuvent être échangées sur des disques. «Actif» signifie qu'il a été récemment utilisé et «Inactif» signifie qu'il n'a pas été utilisé récemment. Le système d'exploitation échangerait donc les pages inactives en premier, puis les pages actives plus tard si nécessaire.

  • Mémoire libre: Mémoire non utilisée. Ceci est utilisé à d'autres fins telles que la mise en cache du disque dur.

Si votre question est: «Dans une situation désastreuse où la mémoire est insuffisante, dans quel ordre le système essaierait-il d'allouer de la mémoire à une nouvelle application?», Alors la séquence serait d'allouer

mémoire libre → mémoire inactive → mémoire active

Dans un sens, même la mémoire récemment utilisée peut être paginée. La partie «câblée» est ce qui ne serait pas paginé à tout prix.

Dans les systèmes modernes, cependant, il est peu probable que la mémoire active soit paginée car nous avons beaucoup de RAM disponible.

bubu
la source
Maintenant, vous avez rendu cette question plus compliquée qu'elle ne devait l'être en parlant des autres types de mémoire. Alors maintenant, je dois poser des questions sur la mémoire active vs inactive. J'ai entendu dire que la mémoire inactive est en fait de la mémoire libre. Ça parles de quoi. La mémoire active est-elle également de la mémoire libre? Comparez et contrastez la mémoire active avec la mémoire inactive.
tony_sid
1
J'ai entendu dire que la mémoire inactive est simplement du cache au cas où un programme fermé serait redémarré. Si c'est vrai, pourquoi doit-il être mis sur le disque?
tony_sid
1
Vous avez entendu quelque chose de mal. Une application fermée verra sa mémoire libérée, sauf si quelque chose ne va pas sérieusement avec l'architecture de la mémoire.
bubu
2
réponse fantastique! +1
posdef
1
@tony_sid une vieille discussion mais ce que vous avez entendu est correct. Comme mentionné sur le support Apple "Cependant, si vous ouvrez Mail avant que sa mémoire inactive ne soit utilisée par une autre application, Mail s'ouvrira plus rapidement car sa mémoire inactive est convertie en mémoire active, au lieu de la charger à partir du lecteur le plus lent."
Gaurav